{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from sklearn import datasets, linear_model,discriminant_analysis,cross_validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 加载数据方法，这里使用scikit-learn自带的鸢尾花分类数据\n",
    "def load_data():\n",
    "    iris = datasets.load_iris()\n",
    "    # stratify参数将按照分类比例进行拆分数据\n",
    "    return cross_validation.train_test_split(iris.data, iris.target,test_size=0.25,random_state=0,stratify=iris.target)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# LDA模型\n",
    "def test_LinearDiscriminantAnalysis(*data):\n",
    "    train_x,test_x, train_y, test_y = data\n",
    "    lda= discriminant_analysis.LinearDiscriminantAnalysis()\n",
    "    lda.fit(train_x, train_y)\n",
    "    \n",
    "    # y=wx+b  分别显示权重及b值\n",
    "    print('【权重】coefficient:{0}'.format(lda.coef_))\n",
    "    print('【b值】intercept: {0}'.format(lda.intercept_))\n",
    "    # 均方差\n",
    "    print('【均方差】residual sum of squares:{0}'.format(np.mean((lda.predict(test_x) -test_y)**2)))\n",
    "    # 成绩\n",
    "    print('【成绩】Testing Score: {0}'.format(lda.score(test_x,test_y)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "【权重】coefficient:[[  6.575853     9.75807593 -14.34026669 -21.39076537]\n",
      " [ -1.98385061  -3.49791089   4.21495042   2.60304299]\n",
      " [ -4.47116022  -6.09542385   9.85886057  18.29330864]]\n",
      "【b值】intercept: [-15.33097142   0.46730077 -30.53297367]\n",
      "【均方差】residual sum of squares:0.0\n",
      "【成绩】Testing Score: 1.0\n"
     ]
    }
   ],
   "source": [
    "# 测试\n",
    "train_x,test_x, train_y, test_y = load_data()\n",
    "test_LinearDiscriminantAnalysis(train_x, test_x, train_y, test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_LDA(cocnverted_X,y):\n",
    "    from mpl_toolkits.mplot3d import Axes3D\n",
    "    fig = plt.figure()\n",
    "    ax = Axes3D(fig)\n",
    "    colors='rgb'\n",
    "    markers='o*s'\n",
    "    for target,color,marker in zip([0,1,2],colors,markers):\n",
    "        pos=(y==target).ravel()\n",
    "        X=cocnverted_X[pos,:]\n",
    "        ax.scatter(X[:,0],X[:,1],X[:,2],color=color,marker=marker,label='Lebel {0}'.format(target))\n",
    "        ax.legend(loc='best')\n",
    "        fig.suptitle('Iris After LDA')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.6/site-packages/sklearn/utils/validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcUAAAE1CAYAAACWU/udAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXmUG+WV9p+SSrvUq3txL+7ddnvfF/aEECckgSQMYHAmyQCTYQZmHJghgeNkMDOHYEgyBxJywnxzGHBYh0MyISEJEEIMgWDa8TQYb7hb6kUt9Sp1a1+qpPr+aN5yaZeqSuqtfuf42Ja6FrWkeure9977UBzHQUFBQUFBQQFQzfUJKCgoKCgozBcUUVRQUFBQUPgYRRQVFBQUFBQ+RhFFBQUFBQWFj1FEUUFBQUFB4WMUUVRQUFBQUPgYRRQVFBQUFBQ+RhFFBQUFBQWFj1FEUUFBQUFB4WPoAn9eGX+joKCgoLAQofL5ISVSVFBQUFBQ+BhFFBUUFBQUFD5GEUUFBQUFBYWPUURRQUFBQUHhYwottFFQUFBQmEMYhsHIyAjC4fBcn8q8RK/Xo6mpCRqNRtT2VIF+ikr1qcKi5plnnsHhw4fx2muvybpfjuNw00034Ze//CW6urrQ09Mj6/4Vlg4DAwOwWCyorq4GReVVULlk4DgOLpcLPp8PbW1tyU8r1acKCsm0trbi9ddfz/j8vn37JAni17/+ddA0jdHR0YTH3377bfz+97/HyMgIenp6cOTIETQ1NYk+Tjqy7fPrX/86tFotLBYLLBYL1q1bh3vuuQcejyftfiiKwoMPPijr+SnIQzgcVgQxAxRFobq6WlIUrYiigsLHsCwraftAIICf//znKC8vx9NPP53w3NDQEFpbW2EymSQdgyDmXL/1rW/B5/NhcnISTzzxBI4ePYoLL7wQgUAg4ecOHz6Mqqoq/OxnP5PlXBXkRxHEzEj93SiiqLBkefLJJ3HhhRfijjvuQHV1NQ4ePIgnn3wSF110EYDZVMwdd9yB2tpalJWVYf369Th58mTG/f385z9HRUUF/vVf/xWHDx/mH3/88cdxyy234N1334XZbMZdd92Fz372s3A6nTCbzTCbzXA6nYjH4zh06BA6OjpQXV2N6667Dm63GwAwODgIiqLw+OOPY8WKFfjkJz8p+nXr9Xps374dv/rVr+ByufDEE0/wzwUCAbz44ov4yU9+gr6+PvzlL38RfRwFhYWIIooKS5r33nsP7e3tGB8fx4EDBxKee+211/DWW2/h3Llz8Hg8eOGFF1BdXZ1xX4cPH8YNN9yAvXv34uzZszh+/DgA4Oabb8Zjjz2G3bt3w+/34/vf/z5+97vfoaGhAX6/H36/Hw0NDfjxj3+MX/7yl3jzzTfhdDpRWVmJ2267LeEYb775Js6cOYNXX31V8mu3WCy44oor8Kc//Yl/7Be/+AXMZjOuvfZa7NmzJ0HcFRQIZrM57589ePAgfvCDH8iy/1deeQWrVq1CZ2cnDh06VNA+80URRYUlTUNDA/7xH/8RNE3DYDAkPKfRaODz+XD27FlwHIfu7m4sX7487X6Gh4fxxz/+ETfeeCPq6upw+eWXF5x+fOyxx3D//fejqakJOp0OBw8exIsvvpiQKj148CBMJlPKuYqloaGBj0aBWWG//vrroVarceONN+L5558HwzCyHEtBQQqxWAy33XYbfve73+H06dN47rnncPr0admPo4iiwpKmubk543Of/OQncfvtt+O2225DbW0tvvGNb8Dr9ab92aeeegrd3d3YtGkTgNmCnWeffbYgQRkaGsKXvvQlVFRUoKKiAt3d3VCr1RgfH8/rfMXgcDhQVVUFALDb7fjjH/+Iffv2AQCuvvpqhMNh/OY3v5H1mApzwOQkcOzY7N9FO8QkrrnmGmzfvh3bt2/HO++8wz/3wQcfYPfu3ejq6sJ//dd/8Y9///vfx/bt27Fhwwbce++9Wfff09ODzs5OtLe3Q6vVYu/evXjppZdkfx2KKCosaXItyv/TP/0Tjh8/jtOnT+PcuXP4/ve/n/bnfvazn8Fms6G+vh719fW48847MTU1hd/+9rd5H7e5uRm/+93vMDMzw/8Jh8NobGzM+3wLwe/34/XXX8fFF18MYFbY4/E4vvCFL6C+vh7t7e0Ih8NKCnWh89xzQEsLcMUVs38/91xRDrN//37ccccdOHbsGH7+85/jlltu4Z87ceIE3njjDbz77rv4t3/7NzidTrz22mvo6+tDT08P3n//fRw/fhxvvfVWxv07HI6Em8KmpiY4HA7ZX4fSvK+gkIFjx44hHo9jy5YtMJlM0Ov1UKlS7yPfffddWK1W9Pb2oqamhn/8n//5n/Gzn/0MV199dco2dXV1cLlc8Hg8KC8vBwDceuutOHDgAA4fPoyWlhZMTk7iz3/+c9rts5Fcjq7T6RL+H4lEcPLkSXz7299GZWUl/uZv/gbAbOr03nvvxa233sr/bE9PD6699lq4XK6s66kK85TJSeDmm4FQaPYPMPv/T30KEHxW5eD1119PSGd6vV74/X4As1kHg8EAg8GAT3ziE+jp6cHbb7+N1157DZs3bwYwe5PW19eHSy65RNbzKhRFFBUUMuD1enHHHXfAZrNBr9djz549uOuuu1J+7vDhw7j66quxfv36hMf379+Piy++OGHNjrB69WrccMMNaG9vRywWw+nTp7F//35wHIdPf/rTcDqdqK2txfXXX1+QKDocjpT1xr6+PgDAQw89hEceeQQcx6GlpQWf//zn8eKLL8JkMuHo0aMYGhrCbbfdliDsV111FTo7O/Hcc8/h9ttvz/s8FOYJg4OAVnteEAFAo5l9XGZRjMfjOHr0KPR6fcpzyRkOiqLAcRzuuece/N3f/V1e+29sbITdbuf/PzIykpBFkQ2O4wr5o6CgoKAwh5w+fTr/H56Y4DiDgeOA838MhtnHJWAymVIeu+GGG7iHHnqI/39vby/HcRx37733chs3buRCoRA3NTXFNTc3cw6Hg3v11Ve5HTt2cD6fj+M4jhsZGeHGx8cz7p9hGK6trY2z2WxcJBLhNmzYwJ08eTLt+WX4HeWlc0qkqKCgoLBYqakBHn98NmWq0QAMM/t/iVFiMBhMmJ5055134kc/+hFuu+02bNiwASzL4pJLLsFjjz0GANiwYQM+8YlPYGpqCt/97nfR0NCAhoYGnDlzBrt37wYw24bx9NNPo7a2Nu0xaZrGo48+ij179iAWi+Gmm27C2rVrJb2OdCizTxWWFBzHIRaLgaIoqFQqZTKIwoLjzJkz6O7uLmyjycnZlGlrq+xp0/lIht9RXl92JVJUWBIQMWRZFpFIBORmUKVSQaVSgaZpqNVq/v+KWCosKmpqloQYyoEiigqLGqEYchzHR4jCDAl5XohKpYJareb/KGKpoLA0UERRYVHCcRxCoRBisRhomubFEJgdpk1EDkitjCOCybIs33xvt9tRV1cHvV6viKWCwiJGEUWFRQXHcWBZFrFYDHa7HWq1mm/4DQQCsNlsvF2SSqWCyWRK+KPT6XiBEwqdz+fjCwCEYklQIksFhcWBIooKiwIihiQNSlEU1Go1OI6D3++HzWZDKBRCe3s7Vq5cCWC2ryoYDMLv92N6ehojIyOIRCJQq9UwGo0wm828WBIoisorsiQoYqmgsLBQRFFhQZNODIngRCIRjI+PY3x8HO3t7aiqqgJFUWAYBvF4HGq1mjfdFcKyLILBIAKBANxuN+x2OzweD06dOgWLxcILpdlshlarTRtZknMj+4tGownPK2KpoDA/UURRYUGSTQw9Hg+sViuCwSCqqqqwZs2agvZN0zTKyspQVlbGP3bq1Cm+LysQCMDlcmFoaAgMw4Cm6YQUrNlshkajSRBL4Xg40iTMMAwvlsFgEMFgELW1tYpYKsx7zGYzP8ItFwcPHoTZbMa//Mu/SN7/TTfdhJdffhm1tbVZvU2loIiiwoIiHo8nVIsKxXB6eho2mw0URaG9vR3BYBCRSESW45J0rNls5meVEhiGQSAQQCAQwOTkJAYHB8EwDDQaTcqaJRHLZJFjGAZerxc1NTUJYkkgbSMkwlTEUmEp8vWvfx233347vvrVrxbtGIooKiwIsomh2+2G1WoFTdPo6uriI7xwOIx4PC7L8cmsxnRoNBre7kkIwzDw+/0IBAIYHx9HIBAAy7LQaDQJ65VkzTI5oiSQyDIajfJtJYTkqFKtVqcVXQWFqeAUlhmXFW3/k5OTuPXWWzE8PAwAePjhh3HhhRcCOG8dNTU1hW9961v427/9WwCz1lEvvPACIpEIvvSlL+G+++7LeoxLLrkEg4ODRXsNgCKKCvOcWCwGhmF4QSIXfI7jMDU1BZvNBp1Oh9WrV6esDWYTslKg0WhQWVmJysrKhMej0SgCgQD8fj9GR0cRCAR4wQOQIJbZRI7jOP5mIZtYEsFUxHLpYvfY0f6jdgzsH0BTWVPuDURArKMuuugiDA8PY8+ePThz5gyAWeuoo0ePIhAIYPPmzfjc5z6HkydP8tZRHMfhqquuwltvvaW4ZCgopCMej4NlWQQCAZw5cwZbtmzhRW5iYgIDAwMwGAxYu3ZtQnWoEDlFUc59abVaaLXaBLF0u92YmJhAVVUVAoEAHA4HgsEgYrEYdDpdwnql0WgUJZYzMzOwWCwwGAyKWC4RorEobvj5DTg7dRZsnMVnnv4MVi1bheeveR4atUbWYynWUQoKMiMsQCFpT+H0mfHxcdhsNlgsFqxfvx5GozHr/uarKGbav1qtRlVVFaqqqvjHOY5DJBLh1yxHRkYQCAQQj8eh1+sTospcYjk5OcmLYTJKZLk40aq16KzsxC/O/AIAcGryFD7X9TnZBREovnVUqVBEUWHOSSeG5IKsUqkQCoVw9OhRlJeXY9OmTSl+gZlIHucmhbkSB4qioNfrodfrE0x+OY5DOBzmxdLtdiMYDCIej8NgMKSIJVmrJOuOQoSRZTJEJEmRjyKWC487d9+Jh/78EACAAoU7d99ZlON8+tOfxo9//GPec/T999/Hpk2bAAAvvfQS7rnnHgQCARw5cgSHDh2CwWDAd7/7Xezbtw9msxkOhwMajSajS0apUERRYc4gF2OWZVPEMB6Pw+l0YnBwECzLYvv27WnvQLNB9pOLX/xCjenp8xf5ykoOX/5yqkDM5fpkMhRF8emoZcvOF0+Q8XZELKemphAMBgGAHywQDodhMplgMBiyipxQLKPRaMKxibgqYjn/mQ5P4ysbvoIDFx/A/X+6H9PhadSZ6yTtcy6sowDghhtuwJEjRzA1NYWmpibcd999uPnmmyW9lmQU6yiFkpMshsJ+PiKGQ0NDWLZsGVpaWtDb28t/cQphenoao6OjKX2KZAwcOe7jj9NoaDj/0XY6Kdx8c+KA8L6+PixbtiylaEYupqenMTU1ha6urqLsPx6P49SpUygvL0csFkMgEEDoYzd2ElmSiliDwZBV3ISGrEIoikI4HIbRaIROp1PEskiIso5aYijWUQoLgnRiSP7EYjE4HA7Y7XbU1tZi+/bt0Gq1aS+++bKQ1hSLDelzrKysTKjSjcfjfGTp9/sxNjaGcDgMADAajQliqdfrE96zZDiOg81mQ0tLS0IqlkSW6ey5FLFUmG8ooqhQdNLZNwnF0G63w+FwoL6+Hjt27IBGc74IQMpFU841xcVActsGkDgUXQiZCxsIBOD1ejE6OopQKASVSsWLJfkjFEuO43jxEx43Ho+nDFIgxUXJ03vS9WoqKJQKRRQVigYRw3A4jP7+fqxevTrBvml4eBhOpxONjY3YuXMnaFrej2O2NUWhQFRWcnA6E9cU0+2r2NWn8wmVSgWz2Qyz2ZzweCwW48XS4/HA6XQiHA7z4hoMBjEzMwOKonjHkWxD1NN5WaYTS1JVq6BQbBRRVJCd5MgQmO1ZIsO4h4eHMTY2hsbGRuzevTtti4Ac5Ctk6YpqxO5LCqXYv1RhyTREnYjlmTNn4PV6MTExwTuOJI+6y2eIejaxFBb3KGKpIDeKKCrIRiaXe2A2Muzr68PExASam5uxa9euookhYaGvAy4kiFhqtVq0tbVBq9UCOO844vf74XK5MDw8jGg0mjJEvRCxHBwchFarRW1tLTiOS6iEVebCKkhFEUUFyQiNfZPFMBKJYHBwEIFAAAaDAbt37y7ZmpFSaJOIHJFiocdI5zgCgJ9WRNpGyBD1fBxHOI7jU6vJkaXw+MLIUhFLhXxRRFFBNOnsm4jghcNhDAwMYHp6Gi0tLTCZTAl9TaVApVKVZCC4wnnyFV6aplFeXi7KcSQUCvE9q/mmYYXnpXhZSmcurKPsdju++tWvYnx8HBRF4Rvf+Ab2799f0HnngyKKCgWTzcswFAphYGAAHo8Hra2tWL16NSiKwtDQUMnPM5OQLdWLXylEXWo0mslxhAxRDwQC8Pl88Hq9GB4ehlarTUnD0jSdUyxZluWHGRAUsZzf0DSNH/7wh9iyZQt8Ph+2bt2KK664omC/1JzHkXVvCouabGIYDAZhs9ng8/nQ3t6O7u7uOb+YLKT0aal+V6VOn8qFcIh6OBxGdXU1KioqEuy5iONI8hD1ZMcRID+x7O/vR2dnpyKWeVJs66jly5dj+fLlAACLxYLu7m44HA5FFBVKD8dx8Pl8CIfDsFgsCWLo9/ths9kQCoXQ3t6OtWvXFuViIeZiK/fsUyV9mptSrFsKBz9otdq0Q9SFkWWy44jQy1I4RB04L5Ycx8Hr9SYUii3UyLKsDPD5zv/fYgG8XvmPU0rrqMHBQfT29mLnzp2yvw5FFBUyIjT2nZmZgcfj4deAfD4frFYrotEo2tvbUV1dXbSLAVkbLLRaNV2fYjQaxeDgIEKhECwWS0IxR659LXRRLIVgAcWPRuPxeNZiLdIjqdPpsjqOCIeoCx1HzGZzQo9lute0kNKwQkFM93+5KJV1lN/vxzXXXIOHH344pYBLDhRRVEiBjGIjo7ooigJN04jH4/B6vbBarWBZFh0dHQkXnWIhNuITChnDMBgcHORbQsrLyxEMBjE5OYmBgQGwLAuNRsNHEeTvYreNCFnoolsqSBtGoRTiOBIIBBAMBvHhhx+mdRzJJZYMwyAajSY8P9/EUm5KYR3FMAyuueYa7Nu3D1/+8pcln3M6FFFU4EknhsI1w/HxcQQCAXR0dKQUQuSD2EglX7eLTNuR/sgVK1Zg9+7dvE2VcLg3eYysTzkcjgTfQvJ3WVkZ7y6x0ChVpFhshEPk5YCiUh1HIpEIzpw5g46OjrSOI8n2XELHEQBp7bnIZ0woltFoFJFIBFVVVQteLIttHcVxHG6++WZ0d3fjzjuLY38FKKK45MnmZQjMujdYrVbE43FYLBZs2bJF1HHEpkCF2xYCiQwDgQD0en1Cf2Q638Bs61PhcBjDw8OIRCIYGBjg3SUyDcxWKC650qdyHUOtVsNoNMJoNKKmpibhOaE918TERMpnQiiW2Yaoh8NhTExMwGKxpI0shT2WYqf3WCypa4pSmQvrqHfeeQdPPfUU1q9fz4vt9773PVx55ZXSX5AARRSXKNnEkOM4uFwuWK1WaLVarFq1ChRFwWq1ij6eVFHMN7XIMAyGhoYwPj6O5uZmmEwmNDc3Z93mppv0GB8/f7Gpq+Pw3/896xRBoggyB7SxsRHA+YHZfr8/YQaocKwZEUsy3WWuWSyRotj0aSHEYrGMx8g2RJ2Ipc/n4x1HyGco3Q1UPB5PGaAOnP9+RqPRlPeNrPUnp3AzvbfFKKrJdJP6P//zPymPHTx4MON+9u/fn7bXMF0P5EUXXVSSJQZFFJcYucRwcnISNpsNBoMBa9as4QdCk4IEsUhppM8nfZoshiQyHBkZSbs/IePjFJqazn/ZRkbOP3///VpMTlIIBOrBcRza2rQ4cCCacWC2cFJLcvO5sOqR9NMpFI7c6dNMxyj0Bk4olsJoJ5vjCPnjcrlgMpmyDlEHzq9ZZvKzJH8Lt10MN0KlRPlWLhGyeRlyHIfx8XEMDAzAbDZj/fr1MBqNCdur1eq0acd8kSKK2bZlWRaDg4MpYigXk5MUVqzg4PMxiMXimJw0Zf35TJNaSIuA3+9P6KcjVY8qlYq/USlWFLRYIsVSpU/lOkY2x5Hh4WHeWcThcCQ4jggzDmQubLaoUCiYQhSxLAxFFBc5QjH84IMPsGHDhgQxHBsbw8DAAMrKyrBx40YYDIa0+5E6Mk1qpJj8RWdZFkNDQxgdHeULaOS+UP7Lv+jwxhtqGI0Ay1pgMMSxdau4fQmbzwnCqkeXywWfz4fjx48DAJ+yJRdFZb3yPKXqhSy28KrVamg0GlRWVqKhoYF/PBaL8dmG6elpjIyMJDiO6HQ6MAzDrzUSMv1OyDUgGo0mVIYuVrGUmmJVRHGRks6xIhAI8M+Njo5icHAQlZWV2Lx5c9oyaiHzJVIUimFzczMuuOACyRevujouIWVaVzf7pZqYoGCxABYLh2g0Do9H3ouksOqRrDuuWrWKX5vy+/3w+XwYHR1NiCCEYlnIeqUSKeZPtjVFOSFrikLUanXGIerBYBButxsul4u37yIzhzPZaZGbymTxW4yRJamHyHU9y4YiiouMbPZNKpUKdrsdIyMjqK6uxtatW6HT6fLar9TmdamiyLIsrFYrL4Zy+jCSoppsUFRp/A6BzIUcJIIgNkxDQ0O8s0Ryf+ViX69cDJEiMPue5vs5Jo4jRqMRU1NTmJmZ4Z+Lx+P8OqPwe0ZaO8hnS47PxXwXSr1eL8l8YHF/c5YQ2cQwHo9jZGQEPp8PgUAA27ZtK7giUuqHX6wosiwLj8eDiYkJtLa2FtWUOB0GAwefjwLDqBEOAzU1c9dgnymCyDb/UyiWynCA/BFbKV0ohYgigaZp1NfX5/w5oePIxMQEXx0tdBzJ9yaKCK7wM2S32/Hoo4/iP//zPws6//mOIooLnGxiGIvFMDIygpGREdTV1aGyshKtra1z0iJQqCiyLIvh4WE4nU7odDqsXr0adXV1RTzD9OzePXvOwWAQQ0MUDhwonSDnC1mXSl6vjEQivFi6XC74/X783//9X0p/JemlUzjPfIwUCyWd40hjY2PCXNixsTEEAgGwLJvgOGI2m2E0GnmxTFcNOzMzw/dnLiYUUVygZDP2ZVkWdrsdDocDDQ0N2LlzJ2iaxgcffCBpXVAK+YqiUAybmpqwe/du2Gw22S/a+eyvtpbD0BCZPKJBdXUYwPwTxXQIR5qRKS3Hjx/Hxo0b+fmfpJeOtAek668s5Pe+mCLRdGt9xaCYoiiEZVl+qSRT0ZdQLJ1OZ07HEY/HU5TZo3ONIooLjGzGvsIilKamJuzatSvhiy21WEYKuURRKOREDMnFQk6z4EL4wQ8i/L+npqbg9XoBtJf8POSCNL2n66WLxWL8MAK3243h4WFEo1HQNJ1S3JNJLBZLIQ8AXgxKcZxSpWmziXy2IerRaDRh/OHY2BjuvPNOVFZWQqfT4ZlnnsHatWuxevXqggtcYrEYtm3bhsbGRrz88ssYGBjA3r174XK5sHXrVjz11FMlz2wporhA4DiOn7tIFs/JBUg47DpZUITMR1EUimFjY2Pac5cqimIv1l1dJkxNUZgNgMwAOGg0FCYn83McX0io1WpYLBa+opFA1qX8fj/Gx8dhtVpTogeSagPmZ+GFGBZD+lQIy7KijiMUSzJEvbu7G8ePH8dPf/pT9PX1wel04ve//z36+/tx5MiRgiLsRx55BN3d3R/fcALf/va3cccdd2Dv3r249dZb8fjjj+Pv//7vCz5vKSiiOM8RRoYnT55ER0cHf+EiNkiTk5N59eqpVCrJoihWYJKFjTQuZxNDgpTKV2E5ej40NJgQDlP4OBBP3huSXIJkoxTWVGLeu3TrUsnRg91u5ycekfmwRCwX6nplKUWxVMeRMx1Mznn37t245ZZbRO1jZGQEv/nNb3DgwAH8x3/8BziOwxtvvIFnn30WAPC1r30NBw8eVERRYZZ0aVJi30QuPG63Gy0tLbw7eC7UarWkiItEmmK+XEQUk8UwOcWbbVsxpJubmu0iHQ5T0OuBNKMXFT4mXfQAzN6knThxAiaTCYFAAOPj4/x6pdFoTOmvFCOWpVq3LJUolqrKVWykmA2fz4eOjg7R23/zm9/EQw89BN/H08pdLhcqKir460FTUxMcDocs51oIiijOM4TGvkBi1RfHcbzLfWtrKz+oO1/msgEfACYnJzE0NJS3GMpxXDI3Va4LQjwOfPKTRtTWxvH887n7G+cbxY7aaJpOcTkQrlcmT2hJ7q/MZfZcqnXLUqU1gdKknOWOFAHA4/GIspADgJdffhm1tbXYunUrjhw5Iut5SUURxXlCLi/DgYEBTE1NobGxEZs2bRL1RZIqimIizVgsBrvdjsHBQZjN5oLEkCDWT5FsK3d00dgYh8Ox8PwUi00mwcq0XsmyLJ+CJV6dpDVAKJZGo5EXqFKJYqkixVJRjEjR6/WmzPjNl3feeQe/+tWv8Nvf/hbhcBherxf79+/HzMwMWJYFTdMYGRnhXWlKiSKKc0w2MQwEArDZbAgEAmhvb4der4fRaBR9UVCr1WAkLIoVsiZJxHBkZAQNDQ3o6upCOByWlHoVQ6GiqNdzCIcz/351OuC112hEo0BLi4l/7PLLWfz0p5GM2y0FChUsmqYzrleS4p6RkRHe7JmMxCNOJMU0e15soliM1yMlUnzggQfwwAMPAACOHDmCH/zgB3jmmWdw7bXX4sUXX8TevXtx+PBhXH311XKecl4oojhHxOPxjMa+fr8fVqsV4XAYHR0dqK6uBkVRCIVCkiO9cFh8yi8fcSIDA+x2OxoaGvjIcGJigq+eLRQp0V4hXowA4HTOzoctKzOnfV6n4+D1zr5PHg8FrZZDMEhhYmLhFZPIjRxRXLbWgFAoBI/Hg8nJyQSz52RHCWK/JIXFJoqA/Glar9crWhQz8eCDD2Lv3r34zne+g82bN+Pmm2+Wdf/5oIhiCcnlcu/1emG1WsGyLNrb21FVVZXwQZ7rNcFsxxeK4fLly1PSpMWyjsqF2NSrVgtEo6mP+/2JFxaNBpBwn1FS5mN1a75QFAWj0QiVSoXJyUmsW7cOQKrZs8PhSHBrtf6dAAAgAElEQVSUEKZhc61XCinFmmIpfCGLiZT0qZDLLrsMl112GQCgvb0dPT09kvcpBUUUSwARw8nJSVgslhQTUY/HA6vVing8jo6OjoRJE0JomkY03ZU6T4ohqsJRcvX19RnXDOdSFIViwHEcpqamMD4+nnX2Y20th+lpCoEAGQZO9pf4t8J55sLSKZfZs9/v5yNLlmUTzJ7J3+nEb6F5NmajWDdDZP13saGIYhFJNvY9e/Ystm7dyt+xTk9Pw2q1QqVSoaOjI+ddl1qt5qtSxSCHKJLtyZBxu92O+vp6fpRctm3nolhGuK3b7UZ/fz/0ej1qamoQDocxNjYGv9+fYPhrNptRVbUCAI1wmIJaDTAMYDLFPh5vNSuSHAf4fBQoalZEpVCKPsViC1YpRDHfY2QzexZOZyHrlXq9PkEsSxHFlarCtRhtH4tppF8yiigWgUwu9zRNIxaLwev1wmazgaZprFy5Mu/5gXJUj0rdnswmJWK4Y8eOvNJSUnokpQqq1+vF2bNnQdM01qxZA5PJhGg0muItRwZo+/1+PPbYcYRCIXzlK7tRVRXD0JAeDEMhFuMAUFCpAJUKMJs5xONY8kU2wMIw/9VqtaiqqkpZrwyHw7xYTk5OIhgM4i9/+UvK8HQ5zZ5LOeKtWMdZyOnfTCiiKCPpHCuELvexWAy9vb0wGo3o7u5OSfnkYi5FMR6Pw+v1YmRkBE1NTXmLIUFKW0WhxTIEr9cLt9uNUCiE7u5u/uYj3b7SDdAGALdbj/Hx8+lTwvbt06BpNdRqGlNT2pL2tYllIa8pEoqRchSaPdfU1AAAenp6sHXrVgSDQQQCAXg8HjidTt5+Kd3w9EIp5Yg3uXsUw+GwJCPf+YwiijKQSwwnJiZgs9kQjUaxcuXKvLzQ0jEXfYbCNKlOp0NbWxtaWloKPnYpi2X8fj/6+/vBMAzKysrQ3t4uepq/0TjrpxiPzwojWV/88MNK7NgRRizGgmGi6O3tRTweT4gszGazrJHFfGc+pU+lQgbtk/dRaFvGsixf3DM1NYXBwUEwDMP7FBKhzOVTuJAjxZmZGVmKbOYjiihKIJuXIcdxGBsbw8DAAMrKyrBhwwYMDQ1JWpimabpka4rxeBwOhwPDw8Oora3Fjh07MDY2Jqk1otjp02AwiP7+foTDYXR2dqKqqgqnT5+WHCHF47OpUpY9HzEGg8CRI7N3yhQF3HrrJait5fDii7O+hT6fD6OjowmRBbnAZnOaKCaLQbDmQ6sETdNpzZ6F/ZVCs2eyVi0cRkDW5xdqpChX5el8RBFFEeQSw9HRUQwODqKiogKbN2/m0wylFLV05NN8n04MSZpUrVYjEhG3dlbMQptwOAyr1Qqfz4fOzk6+rzOfbeWA44Bz51To6wOMRiOMRmPCqDNhJSTJGhB/OyKSpTjPYrNURDETmXwKw+Ew//67XK4EtxvSYlLMrEIxxHexeikCiigWRDYxjMfjGB0dxdDQEKqqqrB169YUP7b5IIqZLrzxeBxOpxNDQ0MpYijcfi6KZTJtG4lEYLPZMDMzg/b2dqxZsyblolJKL8ZMmpauEjK5sMfj8cDj8eDYsWMp/XVih2ennt/CX1MslfDKhXC9UrhWHY/HMTw8zJs9k6wC8btMfv+lUIxIUco0m/mOIop5QKZpBINBmEymFDEkkVVNTQ22bduW8UNcTFETS7IYbt++PeP5z6UoCl93NBrFwMAAXC4X2trasHr16owXSqkRWFUVB4+Hgtw2lMmFPX6/H8PDw1i9enXC8Gy73Y5oNJqwXpWtv24uWSyRYimcK1QqFW/LJZzvGYvFEqLKoaEhMAwDmqZT+ivzFbpiRIrFmGYzX1BEMQtC+yafzwe73Y7169cDSGxazyUmBJqmRacf5UYohjU1NXmdvxRRlyLopNBGaKbc2tqKrq6unBdIqaLY2zub6gqHw6ivr0Y8nv2if+mlRrz5ZuHj7IiYZGpGZxiGjyqF/XUGgyFBKLP5Fy6WKG6xNNXHYrGU75xarU67Xkne/0AgkLBeSVLwyeuVQkiqXk48Ho+ypriUSOdlqNXOlt2TQdcOh6OgPj1gVhQDgUAxTz0nHMdhZGSkIDEklDIVKYTjOASDQfT09KC5uTmnmbKQTGJc6MWboig0NYURCOjhcmXetrdXhfp6M1aunP09zRbfhPI6Rjbx1mg0qKysTFmvCoVCfGHP2NgYQqGQ5BFnYllM6dNSiWK+EVym9z8SifCRpdvt5q8vBoOBf+/D4TCMRqOs5+71ekVVoS8EFFEUkE4MhV9Ar9eLd999F42NjTknuKRD6kQaKZA1z0AggGAwWJAYEqSmfwtF6LTBcRx27dpVcBpIrgIWiqLw9NPHsWnTpozDwgmhENDQMCuKTmfxLq5kHmhyYY8wBScccRYKhdDf389HlumiCiksFsGKxWLzThTTIUzBC82e4/E4QqEQv17pdrvhdrsxNDSUMjxd7Hq1sqa4yMlm7MswDIaGhjA2NoZ4PI4LL7xQ9AeZTLSRSiEXH2EBUHV1NUwmEzo7O0V96UsVKQp7I5cvX46dO3fi2LFjon7vUoYGJMNxHDo7TXn8nCyHE026FBzHcXjvvfdQWVmZUgVpNBoT2kXEXihLIVilEt6F2j8IgC/WMZlMqK2tRSQSQVNTE4xGY9r1apqmU/orc2UWlJaMRUo2MYxGoxgcHMTk5CSam5txwQUX4OjRo5I+xHJEiiRayxWlJoshKQDyeDyi74SLLYocx8HpdGJwcDBjBWyhZIoUC724nh/ent82b701+/6wLLBzpxE1NRxefjm/NGoxoCgKarUa1dXVKVGF8EI5MjKCSCTCF3YIU7C5PvuLJVKcj+lTKRCD4UxmzwzD8JkFodmzTqdL6a8k56usKS4yshn7RiIRDA4OwuVyYcWKFQWtX+VCjkiRtHVkEkVhn6RQDAlEVMWITbHSp8JBB9XV1aJSu5mQM30qZj9GI4f6eg5jY/Nzqk2uwp7kwg7hWpXZbE4o7FFEcX4eJ9dNNKmCTWf2TD4DdrsdwWAQr776Knp6ehAMBvHee+/BaDSio6OjIHG32+346le/ivHxcVAUhW984xvYv38/3G43rr/+egwODqK1tRUvvPBCRsegYrKkRDGbGIbDYQwMDGB6ejrvysZCkdqnCGQWJqEYZuqTJNvPRVtFOoidltVqRUVFRcZzlkK2cy70Il6IKEYis16LGzeWvjBJDjIVdpDB2SSqCIVCfLqOVEOSkWfFoBTCu1DWFPOFRIqFIDR7FmYWNm3ahLNnz+Kb3/wmhoaG8J3vfAdWqxXXX389vvWtb+W1b5qm8cMf/hBbtmyBz+fD1q1bccUVV+DJJ5/E5ZdfjrvvvhuHDh3CoUOH8OCDDxZ03nKwZESRVGoBiWIYCoVgs9ng9Xpz9ryR/Yj9UsoRaSXvI18xJOQz1SbfYxeKMNpyuVzo7++HxWLBpk2bYDAYRO831zGTRVE4l7aQ/QBAeTnHp1Azd9dwYHRjYPzL0dOjxo4dpStOKibpBmcD5wt77HY7/H4/Tp48CYZhoNVqE1KwJpNJstgspkixlNZRcma71q1bh0gkgn//93/nz7+Q79Ly5cuxfPlyAIDFYkF3dzccDgdeeuklHDlyBADwta99DZdddpkiisUk2dg3GAzCZrPB7/ejra0t7TSUZEikJ/YuWI47XCJMwpRjPmKYvL0YpKYiVSoVXC4XbDYb9Ho9NmzYIHupeDJyp0/7+8+31GzYYMLw8Oyw8ASMU0DHa8Cp68Aw+Yn9Qh4aLizsoWkay5cvT0m/CdsFkoem63S6ggrHFkPzPlA6UQTk/XwR03Th+yB2/4ODg+jt7cXOnTsxPj7Oi2V9fT3Gx8dlOd9CWTKiCMxelH0+H2w2G0KhENrb27F27dq831CNRiNJFOVArVZjYmICZ86cQWVlZcEpR6miKJaZmRl+asuaNWsKts0Si5wzRZP3c+LE7EW+qckMs5nD6AQLrutXgMEF6D3AhqfB+JoxNvZp1NTkPofFNPs0U/qNtAuQ0XYOh4Mv7Eme2JNuHWyxrFsSFvLNkNRz9/v9uOaaa/Dwww+nDCtIbocrJUtKFE+ePIlAIICOjg5UVVUV/Eufyz5DEhk6nU6UlZWJXn8rda+h1+tFf38/AMBsNmPt2rWyrxtmQ67ReJk+K83NZni9gNdLAdAA9guB7heBUAXA0cDILrw3XviEm4VIPoIlbBcQ2jEJKyDHxsbg9/t5hwmhUJZivW8+Dx0vlGLcaMnx+2EYBtdccw327duHL3/5ywCAuro6jI6OYvny5RgdHU3ovS0lS0oUu7q6JFU1kkhRKoV8qDiOw/j4OGw2GyorK9Hc3AyDwSBaWKQU2hQC8TRkWRadnZ2oqKjgPQdLiVx9ipku9j5f0gMxDRDTAqFqwDADjtEDmJsbqVIjJYrLVAEpLOyZmJiA2+2Gz+dDWVmZrEOzheTT8rRQKEYq2OfzpbR1FALHcbj55pvR3d2NO++8k3/8qquuwuHDh3H33Xfj8OHDuPrqq+U43YJZHO98nuj1ekkXSJqmwTCMpHMgbRm5RJGI4cDAACoqKrBlyxbo9XrY7fai20dJIZ2nIYGiKEnHFnPRLYUlE7l+siwAxgR8dDWoUC1gccxGi4ooiiJdYc/JkyfR2toKjuNShmZrNJqEIQTCvrpCKNWaYimYj7ZR77zzDp566imsX78emzZtAgB873vfw913343rrrsOjz/+OFpaWvDCCy/IdcoFsaREUSpytVRkW5cUimF5eXmCHyM5h1BIfBN4sdKnoVAIVqsVfr8/xdNQeGwpQ8HlEEXhgAC1Wp1wEZXFeYLVA6weHAB4mqTta4FRqvU+mqah1+tTohVS2OP3+/m+Oo7jUoam5/ItLNVknlJQLINhKaJ40UUXZXz9f/jDH0TvVy6WlChK/cLKIYqZGvhziSFBqqhJMQoGzqcjyUVD6GnY0dGRtXBJDuupQi9WZE2R4zje4LeqqgqbNm0Cx3H8OhZxnuA4rqCxZxZLmhRqEgEmgCATRI2xJvsPLnBKNRA802dAq9WiqqoqITuRXNjjdDoRDocTbohICpaIR6nmqy7UCteZmZlFO/cUWGKiKBWpURrZh1BYhRfrbGJIkEMUpaZfyRCEfD0Nk7eVctxCoSiKd9gwmUz875dhGMTj8ZQG9eSxZ0I/w3A4jNHRUf5CqlKpYLf7+W0rK80f+y4Kfw8cPpz4EEPeIVzffb2o1y4HpYhMShUpFnKMTIU9LMsmjDazWq18YU84HIZGo4FWq4XBYCiKQJaycb8YkeJiHfEGLDFRnA+RIkmfJothvg3scy2KANDf3w+Xy1Xw5B8poihmbdDj8eCjjz4CwzDYunUrTKbcw7wzjT2LRqM4fvw4GIaB3W5P6LmzWCwf/7wZCYJYPgysegmfu30aoOL4h+j/Q7nnItj+tKag17FQWEjtEjRNo7y8POHiTgp7zpw5wxtZk5tgYbuIHIU9CzlSXMwOGcASE0WpyCWKbrcbfX19KCsrK3iai9RzEFt9yrIshoeH4fP5sGzZMlEzYUsVKQYCAfT19YFlWaxYsQIzMzN5CWI2tFotaJrGihUr+MdIVOnz+eByucBxHz9nHgUqrbPtGc5toNe/AgqA2tOOoG0TgGjK/otdELRYvA6LeQxS2KPVanlXCWBWWEj2wOVyYXh4mM8eCNOvhaxJK5Hi/GVJieJcRopkzqfD4YDRaBQ92kyO9Gch2ws9DZuamlBdXY36+nrRLhtizz2ffsNwOIz+/n4EAgF0dXWhqqoKXq8X09PToo6ZzzkJo8qyihhmmPHZaTYr/gR4WgF1CFzECETNiJadArdsOdzu5bBYLHM6BKIYLHRRJCRHo5ncJYQTe8iadDweT5nYk66wZyFPzfF4PAk3h4uNJSWKUhEjikQMbTYbzGYzmpubQdO06FmfpUqfJnsa7tq1CzRNw+fzzclA8Wz9hiTV5Xa70dHRgZqamoTJKqXqjfxj70lsv/MRsLpJIEYDn/lHgIpDe+IAQDGINr+GeON7+JO1GuaYGRaVBTqdjk/HsSxbtCKPxbKmCBR/Cky+QpKusIfjOL6wx+fzYXR0lC/sEQplNBotyYAAYgElJ0qkqMBTSPN+shiSOZ+jo6Nz2lKRa3viwzg4OIi6uroUT0Op0Z4UQU2+sLMsyxtAt7a2YuXKlSkXzFL0KRI6Kjvwu/v34aGjD2Ey6MDZd1YjihBCtUcQrz4LKlQN/bIwBuDFDetvQK1x1gDW7/djZmYGwWAQx48fB0VRKWtYckSViyGKKwVSbkwoioLRaITRaEyYyJJc2DMzM8NP8RGmYI1Go6xiWYxBBIooLiKkfmHzGfPGcRympqZgtVoTxJAgdU1Qqn1TNuupfDwN56KCFEiM+OLxeEJKN9v6ZilFEQCmQ9Noq2hDnakO3u1/xqXNl8LpfwOrq1aDiQeholS4qOkzqDPNVkLq9Xro9XqYTCaEQiGsX7+ed53w+/2YnJzEwMAAWJZNGHmW7GU4H1BEMTPJhT1jY2OIRCKoq6vjeytdLheCwdmRgEJz31xtQdkQYxuVC6/XqxTaKMySy1IqmxgSpIqiHMIuFCZhFWw+noZSIlWVSiV6IhCJUJ1OJwYGBlBfX4+dO3fmvAsutShe0HQBLl1xKTQqDW7//e3wRDywaC3Y0bgDjeZGAIA34s26D6HrBCGbl6FQKIX9dkIWy3pfqShFipYMIdDr9Vi2bBn/XKa2IJqmCx42UaxIURHFRUIxPuhEDG02G4xGY047pFIP5E6GiItQxAvxNJQ7BZoPZJ3m1KlTqKmpyRjFZjpmuvMt1kWvTDcrZN6IF5vqNuFTrZ/C2yNvY92ydWiraBO930xehtn67cxmM98uUopZnotJFItNLBbL+BnO1BbEMAx/UyQs7Eme2CPMIBQjUlRaMhRSIBd2oRiuX78+L29AOdo6pEBRFFiWxbFjx0R5GkqNFAsVVNK+wrIsOjo60NDQUND2pY4UCWW6Mty6+VYAQGdlZ9GOk63fTljsEQqFEA6H8dFHHyVEG3JeMBVRzB8xVaEajSZl2ERyYc/Y2FhCBiEQCCAQCECj0chW7RyNRrMOGFnoLDlRlHqRpCiKX+cxGo1Yt25dQT1wcomimAvQzMwM+vr6EI1GsWXLFlGehlIjxXwF1ev1oq+vD2q1GuvWrYPT6RQV7cyVKCbDxBh85P4I62rWpX1ezvNMF1UyDIMPP/yQX8MaHR2F3+9PiTQytRDkQ7YRbAqJyGWBlamwh6xLu91uuN1u2O12vhJVuFZZaGHPfPguFZslJ4pi4TgOLpcLgUAATqezYDEkyJE+JfvIVySIwFAUhVWrVuHkyZOiTX6lWE/lI6jCxvuuri4+AhKbepXLT1Eqp6ZO4eFjD+Mne34Ck0baIAExEMFKZ8+UroVAzPpVsSPF+fA+ykWx+xTJujRN03xVNsdxCUPThYU9hcz7nUsD4FKw5ESx0DtyjuPgdrvR398Pg8GAiooKdHV1iZ6QIrV6FMhfFNN5GkpFarFMptceDodTXDaEiO03zPZ+lyLdNxOewXfe+g4mAhMYD47juv+9DpesuATf3vXtoh43XzJFGpnWr5Ivnjqdjv8dFjqXtFAWk3tFqSbaAOfXzymKgk6ng06nS/h+JRf2jIyMIBKJ8DdGQs9KlUol69CJV155Bfv370csFsMtt9yCu+++W7Z9i2XJiWK+EDG0Wq3Q6/V8ZHjy5Mk5rR4Fckeb2TwNCWIFQe6WDNJ473K50NHRgTVr1qQ9LykDwUttbCykQl+BfWv24d/f+Xd4I174I35E2AjsXjuay5pLdh6Fvt/p1q+SHSccDgd/8bRYLPw6ZllZWVEu+AtptmouSimKuchV2BMIBDA6Oop77rkHg4ODiEajOHjwIDZs2IANGzagvb1d1O8sFovhtttuw+9//3s0NTVh+/btuOqqq7BmzdzOBl5yopjPl8rlcsFqtUKn02HNmjUJH5a5LpQBMotiPp6GwHmBEfOllKvQJp/GeyFi19zkXlMUc2Hun+nHR+6PwIFDiA3h0eOPYtQ/ir/Z8DfwRXzYWLcRZpW4dHYpyeQ4QVJyk5OTcDqdsFqtBVtw5UMpBGsxiaLUz33yjdH//u//4qOPPsKBAwewadMmnDhxAs899xweeughtLUVXlnd09ODzs5OtLe3AwD27t2Ll156SRHF+UQ2MSQUMtWmWCQLcyGehsB5YRPzpZSj0GZoaAgjIyNobGzMe7C4lEhxrvlM22fg9DnxxIknMMPOAABesb6CE5Mn0GRuwrXd12Jj9UbEuOK26hTrd0HGnWm1WnR3d/PvVSYLLiKSFouloEIPRRQLoxjrln6/Hw0NDfjiF7+IL37xi5L25XA40Nx8PlvS1NSE9957T+opSkYRRYBfM8wmhgS1Wi16TY2QbNRbKETUhKnHfD0NhduLQaw4kbF3LpcLFoslr8b75ONK/b0LESMQJOosdNsaUw0isQh8UR9iXAwcOLgiLrgn3XD6nfBH/eiu7sZnyz5b8DnlS6lnn2az4CJrlUNDQwkTXHJZM5UifSpXVWg+xym2KBZrGPhiHvEGLEFRFH6pyJqhRqPJKYYEjUYj+eJMIj0pnmwjIyMIBAIFexoC0kSx0G2JGFqtVn5KS2dn4X1786G1Quw5MDEGf7X6r3Bk+AiOjx3nH+fAwRVy4b3R97DcvBzl2uJdbOb6d0dIN0Q7Ho/zAwhcLheGhobAMAy0Wm2CUAIoSaRY6gKYYlEM2yg5G/cbGxtht9v5/5Ps0Vyz5EQRAKanp9Hf3w+NRoPu7u6C2hNompY00JvsQ4woEk9Dp9Mp2tMQKH5bBYE03ptMJmzatAk0TaO3t7fox51v/Lr/13jkL4/AOm0Fh1Rx4sAhFothwDeAbdhWtPOYrw4WKpUqxZopXfuAz+cDwzA4c+aM7MPSCaVKn5aCYkSKcg4D3759O/r6+jAwMIDGxkY8//zzePbZZ2XZtxSWnCiSO9HVq1en+KPlg1xGw2I8DR0OBxobG9HW1gaVSiX6yyvF6SKfcyd9kSqVCmvXruVvOmKxWMlHxKWD4ziMj48jGAyirKws7zFoYiPFL678IgY8A3j65NMIMSEwXFKmgQPedr6NHcYdBe97sZKufcDr9cLhcKCpqQk+ny9hWDqx4BI2pYsR6MUkisWKFOWK5miaxqOPPoo9e/YgFovhpptuwtq1a2XZt6TzmusTKDXLli2TdKcjhyjmu49kT0OyDud0OhGJREQfv1hrioFAAP39/YhGo1i5cmXK77lYfoqF4HK50NfXB4vFAoPBkDAvlEx2IfNChT145BxEDRCgVHAFXVhdvRqTwUmYYII36oVWpUU0HoWaUuOqjqtwQc0Fkl9fJhbDCDaS2kwXVRILLlIFGwwG+WpZ8n7mc/NTqjXFUlCsSLG7u1u2/V155ZW48sorZdufHCw5UZRKKUQxHo/D6XRiaGgIdXV1KUUppTIazndb0njv8/nQ1dWV0nhPkHJRlpo+9fl8OHfuHNRqNTZs2ACdTgeGYfgLoHCyi7AHj1RLWiwWfpC6GG7eeDOW6Zdh7eNrEYwFYdFa4I16oabUUFEqDHoHwSyTr5BoMZIpiqMoKq3bBBl15vP5eCeYXBZcpVhTLNX6bjEixcXukAEsQVGUerdczPRpvp6GcymKQnFiGAY2my1n470ciI3SQqEQQqEQzp49mxC9Jr/+TJNdyLqWz+dDOBxGb28v76JeSATyWO9j+MPQH2DQGBBiQwgwAQBAnIuDBYtjY8dwX/A+PLv2WVi0haf1c7EYIsVCX0MhFlzkPSXj8IohKIRSNe4Xq/pUEUWFBOToU0wW1lJ6GkrdnqQxbTYbRkdH0dLSkrPxXg4KjRSJYLvdbtA0jW3btok6R2G15MzMDFavXg2apvkIJDn9SoTSYrEkNKvfsf0OfDj5IYJMEBQoaGktAkwAHDhEY1GYaBP21O+BWTP/m/jnCjnW+3JZcDkcDvj9fnzwwQcJKXWpw9KFlEoUyVqrnCiR4iJE6gdajipImqbBMEyKp+HmzZvzsmSRGq2SO+FCIWucgUAAKpVKdPWrGPIttInFYnyFLhHsd999N+V9F9unCGSOQDKlXy0WC4wmIwKRAOqMdXCH3NCqtAhgNlqkQCHGxaBWqRGJRaCn5bflmS8tGVIoZrRLLLj8fj/Ky8vR2NiYcVi6Wq1OMXYuRORK2Qs5n1sy5itLThSBue95U6vVcLvd6OnpgcFgKKmnIdk+Go3m/fMcx2F0dBSDg4Oora2FyWRCa2ur6OOLIVehDcdxcDqdGBwcxPLly7Fr166izd/MdH7Z0q9erxf7mvehmqrGP0//M2YiM+f3CQ4UR+EJ2xPYvW43NtVtkv28yTkuZEpRGRqLxfgWj0zvKcuyfPpVaMGVbVh68usoVaRYjIk2wpvBxciSFMW5ZGZmBjabDbFYDJs3bxZl4VSq9CmJZPv7+1FRUYFt27ZBq9ViYmJC9LHFkilCF55jZWVlxnVYOaIMMTdTwvTrra2zpsMDugEcOnpotmeRA+KIw8f4cGnlpWDcDKbUUynpV4XSjXnLJSQ0Tae14AoGgwgEAinD0pMtuEq5pih3pMhx3LwZZF4sFFEUSaEXWaGnYUtLC2ZmZiR5GhZbFKenp9HX1weDwYBNmzbBYDCIPp4cpBMkj8eDc+fOQafTZT1HsePZ8jkHMVQbq1FtrEa5thznps8BmI0WX5l8BRXWCtyhvSMl/SrWFJawFAttxCBWeCmK4oel57LgYhgGFEVhcHCQf2+LcQMkd6S4GFLw+bAkRVHqxY2s6eUzSSOdp6HP54PL5RJ9/GKKImldUKlUeY++KwSxc1+FkWIwGMS5c+fAsixWrVqVM50zX4yGCVe0XYGdDTvx55E/4+DbB+Fn/ABmK1G9nBemehPajG14/IPHceOqGxEJRWM3fX8AACAASURBVPjPTDAY5C/AhVS/Lgbi8XjRX6fc0Wg6C66JiQlMT09Dr9cn+BcKh6WTqFLKucgdKZLv0EK/ucrF4v8mFYF8RDGbp6HUQhmpH8p0ohgMBtHX14doNIqurq6si+lSBpoTcRMjiizL4syZM/B4PFn7IdOdrxyiKNd+VpStAMdx+M5b3+EFEQBYsHi572Vsrd+KFZYVOPTuIWhUGlzZcSVaqlr4nxP23+Vb/VrsKKsUNx3FNjEGSudeYTAYUF9fn/C4cKyd3W5HIDBbiCVcqyTvaz7IHSkGAgHR5uoLiSUpisXsVczH03CuPRmFUVc4HIbNZoPX60VnZ2dC83Ou7aWIYiEQuymv14vm5ua83UAIck3DkbNAi6IoPH/V81j+6PIEy6gYYvjun74LADDQBtz79r346f/9FC/91UuoN89eRLNVv/p8vrTVr8TdZSGPMSM9hMWkVMU86cQq07B0oQXX8PBw2mHp6dLqcr8Wj8ez6ItsgCUqilJJJ2qRSARWqxUejyenp6FarZ5TUSQXyHPnzmFqagrt7e3o7u7OW2hIpCkmNVOIKMbjcTgcDgwPD6OhoQFmsxkNDQ0FHzOTmM11Gmg8OA69Wo8AG+AfEw4MZ+IM4kwcX1v/NdQYa9LtgkdYKZlsAOzz+TA1NQW/34/jx4+DoqiEyMNkMklOs83n9b75eIx8f9/ZLLh8Ph8/LD2dBZfc78lSaMcAFFEUhVAUhZ6G+YqLXF86MR96Mlx8ZmaGb12Qsr5XKPlsS+ym+vv7sWzZMuzYsQM0TWNsbEz0MedT+pTQUt6CL638Ep45/Uxa9ww2zkKlUqG9sh1qlbg0mFarRXV1NX8RXrVqVUL6dWxsDH6/H7FYLG2aLt/PV6lEcTEIbywWk9xUT95X4RJCsgVXOBxGT09PyrB0g8Eg6jV6vV4lUlysyJE+jUQi6Ovrw8TEBFpbW0sy1UUIEZd81wyEw8UbGhpgMpnQ1NQk+tjFMimemZnBuXPnYDQasWXLloRhBmIFaT6mTwn3XXIffmv7LabD0ynC2GBuwL0X3ovmsuYMW+ePULTEpF+JUGa6oJZCFEuRPl2o5r9AogUXx3GYnp7G9u3bE0YVTk5OIhQK8cVahVhwKZGiQlpYlsXMzAw8Hg86OztLOtVFCElh5vpyCRvva2pqsHPnTqjVaoyOjko6ttyRot/vR19fHziOk73qNZOYFXohL8ZFP8SGcGHThTgxfgLDvmFeGM20GWOBMbRXtGPtsuLb6eRKvwrTdOnSr0r6NH9KVcyjVqvTWnCRcyBRZToLLnIjJByW7vF4ZPNSnM8sSVEU8+UlaceRkRGUlZVhxYoVaG6Wdgcv5UKSqy0jU+O9HMiZPo1EIujv74ff70dXV1dCkYFcpBNFiqJE/e7ljhRXlK3AM1c9A6fHie1PbkcgNjsPleEY6NV6HHjrALqru3HoE4dg0oiv/BP7WUuXpkuXfmVZFgzDYHBwUFT6NR8WU/p0rqPRTNkCoQXXxMQEgsEg3G43nn32Wf6GSWoa9a677sKvf/1raLVadHR04IknnuAj0AceeACPP/441Go1fvSjH2HPnj2ijyOWJSmKhZDsabhr1y5MT09jenpa0n6lFKsA2StYi914L4fLBsuyGBgYwOTkJNrb2+elw0ax9pMOV9iFy+sux4fBD2H32sHEGDSUN6B3vBe1xlrEOenpX7lId0ENh8M4c+YMDAaDqPRrPpQifVqKiLcUoijG5SOTBVcoFIJer8czzzyDkydP4vOf/zy8Xi8uvfRSPPLIIwWf2xVXXIEHHngANE3j29/+Nh544AE8+OCDOH36NJ5//nmcOnUKTqcTn/rUp3i7t1KiiGIGsnkaymUfJcWeJp0wFbvxniDVLHhsbAxnzpxBc3OzqEKfQpFjiDtQXFFcXbUaf9/593g9/DpuWHsDLn7qYti9dgBA70Qv9jy/B//52f/E+pr1ovZf7D5CjuNA0zTq6upEpV/z+R6Uqp1kMYiinMcwGAy47LLL8MYbb+Cv//qv8bnPfQ4cx4keQPLpT3+a//euXbvw4osvAgBeeukl7N27FzqdDm1tbejs7ERPTw92794ty+vIlyUpitk+9EJPw2XLlqWdpSmX0bBcU2nIoIBIJJKz8V4OxKwpchyH8fFxOJ1OVFdXpxgnF5O5HgCfL3q1Ht+96LtwhVy4dcut+GDiAxxzHgM4YP/2/aIFkVDs5v10+883/ZpP9etiGFUHlMYloxh+kMJCG4qi8uppzsV///d/4/rrrwcAOBwO7Nq1i3+uqakJDodD8jEKZUmKYjoK8TSUSxSl7EOtViMcDuP06dN84326QQGZkDqVphBBd7vd6Ovrg8ViQWNjI8rLy0s6lmwhpE+FnJo8hdVVq3Fs9Bh2N+7GsbFjODFxAtd3X1/0Y4ulEMHKtJ5FmtQ9Hg9GRkYQjUYTmtSj0eiiEMVSuGQUIxr1er15F9p86lOfSttCdf/99+Pqq6/m/03TNPbt2yfreUplSYpi8t1noZ6GcqZPxcAwDKanp+F0OrFq1aqCGu8JpZhKI0znrlu3DiaTCQMDA7KkMgshnZgFg0GMj48XNDu02KIYYAI4NnoM33v3exj1j+LLq76MZfpleNP+Jo4MH8Ezp57BJ1Z8Ag2WwgcYlGLMm5T9CwdqC9OvwsKPYDCIEydOJDS0yzV8oJSUYm20GJGi1+tNmOGajddffz3r808++SRefvll/OEPf+A/N42NjbDb7fzPjIyMoLGxUfwJi2ThfJJkhqIovjrTaDQW5Gk4V+lToYGu2WxGfX19yvzEfJFS6JOr0CYcDqOvrw+hUAgrV65MSOdKXd8Tc/EVNu9Ho1FYrVbMzMygtrY2YXYoSd+RXi+5qnXzgaIo9Lh7cOjoIagoFVRQ4eFjD4OmaDBxBmddZ3Hf2/eh7XNtokSx2BRLdIXtBC6XCxs2bABFUbxQpku/FtN5YqFQjEhRrj7FV155BQ899BDefPPNhGvuVVddhRtvvBF33nknnE4n+vr6sGPHDsnHK5QlK4q9vb0AgLVr1xZckCLHF60QYU0ed7Zr1y6MjY2BYRjRx5daQZru2AzDwGazweVyobOzEzU1NSm/K6lFOmIuvhRFgWVZDA4OwuFwoLW1FatWreItfIDz6Tufz5cwY1Kn0/EXWZZlixrlXlZ7GZgKBj9874dgORbb6rfh/Yn3wYEDG2ehU+uwonyFqH3P90gxH0hmQ6VSoby8PCGVJ0y/zszMwG63p6RfLRYLjEZjxvMsRctHqSA9h3ISiURkqWS//fbbEYlEcMUVVwCYLbZ57LHHsHbtWlx33XVYs2YNaJrGT37ykznxblyyorh27dq8rJ+KRT7pU2HRT01NDXbs2MGfM1lTlHJ8saKYXGgTj8cxPDwMh8OBlpYWdHV1ZUwPZRLUfBCTvuQ4DoFAAKOjo2hqasKuXbugVqvT9i2S9J1w20hk1raJiKXL5YLdbuejyVwX2kLpn+5He0U7KvWViHExlOvK4Wf8YOMsLmm+BE0WcVOIik2pJtpkOkY+6depqSl+mku69OtCHpaezHy2jerv78/43IEDB3DgwAHJx5DCkhVFnU5X8rUtIWRUXDqSG+/TFf1IHSouNVKMxWL8tJyBgQHU19fzgpNrW6mN//nePc7MzOCjjz5CPB5HR0dHwWPthH1bJOo1m80oLy/nx2aRC226dS4xd7n/dvG/oVJfCY1KA6ffidteuw03rrkRb9nfwrbl2wreH2ExRIpijpFpmku69Kter0ckEoHL5Spa+rVUVdBy20YBi6f6NxdLVhSlIqV6E5gVReKXJoQ03uv1emzcuDHjOqfUlg6p80sDgQCOHj2KioqKtG0r2baVIor5XFSICXEsFsPatWsxMTEhy10ziVTTWfywLMu3GRCHdY7jEsyALRZLzvNYbl7O/7u5rBm/+qtfAQD2rtkr+fyLSSkumHLtX61Wp02/Tk9P8+vNYtKv+VCqaFTuSLEYIjtfWbKiKPULptFowLKs6GKM5EjP5/Ohr68PANDd3Q2LxZJze6l9jmLEyev14ty5c2AYBtu2bcu7OIkgdU0x27YMw8BqtWJ6ehorV67ko4PJycmiN+/TNJ1yoSWuBWQQs81mSzADJmKZz9pPLB7DP7z2D3jwsgdRoS+82KEUzfsLOYogM0KNRiM6Ojr4xwtJv+ZDKRr3AflFbKk4ZABLWBSlQtM0b/YpdvtYLMY33ofD4ZRKzWzIIYqFbC8cENDS0gKXy1WwIALFsZ0SrmmSIhrhBXqu+hSFrgUEoRtFsmlsKBTCxMQELBYL9Ho9/xrec76HDyc/xC8++gVay1txQeMFuLj5YqiowiKOhZ4+LTbporhC0q/J1a/pbnZKJYpyR4pLxSEDUERRNFLbMmKxGNxuN3w+H7q6ugpqvAdKJ4rRaBQ2mw3T09Po6urCsmXLEAgEMDExIeq4clSfEsjABavVirq6uoxrmvNpok06NwpSOfnhhx8iEAhgbGwM4XAYNE3DbDbjrnfvwkn3SQDAD977AZosTXjnr9+BWVucMX5iWKyimI5M6VdS/To9PZ2SfiVCWYrGfUD+SHGpOGQAS1gU5fBUFCOKxElgfHwcarUau3btEnUuckzEySaKsVgMQ0NDGB0dRVtbW0L0VWyT4Xy2FfouZps+JPWYQoolrqSgR6PRoK2tjX+cYRj4fD7cv/1+fOnVLyHKRUGDxvfWfw+eSQ/ilnjeBT2LodCm2EgZv5ar+pWk0H0+H2KxGM6ePcsLpdlsll0o5V67LGSazUJnyYqiVAoVJWHj/YoVK7Bjxw709vYWzToqn+3TVb9yHAeHw4GhoSG+JzL5C1sMP8V8tw0Gg7DZbGBZNq+1V2B+mwxnQ6PRwKPy4AuvfgFxLg4VpQLLsThw4gBebng5paBHGJEktxspa4q5KUYUl5x+dbvdmJqaQl1dHfx+P0ZHR+H3+xGPx/NKvxaCnO+HEikuAUoVKaZrvCd9clJETer5J4sTx3GYnJyE1WpFVVVVQk9kum2lWkcVCsMw8Hg8mJ6eRnd3d0HDiDOJ2UK4iLdVtOGZLzyDr/z6K4hxMVTrq/HK3ldQbz4/yYgU9CQbxpKCHrPZnDCooBiUIhItNqXyUkxXlJVv+lXOnthC8Hq9ypqiQnZyiSJxhbDZbCmN98DcX5CFkSZJRebrv1jK9Gk8HufNnbVaLdrb2xOKHvJhoQ0ET8YT9YCiKGyr24be8d6UtURhQc/y5bMtHcKCHo/Hg6mpKTAMA7fbnVD5KnRWl8JiSM/OpcFwvunXYDDI98RmSr8W4zNKxiIuBZasKMoRKWZKP5IB42VlZTnXu+YKMhHn/fffRywWyzsVCeTfL5hp23xEUVhEU1tbi507d8JqtYo+plyiOBcDHy5vuRw9X+tBR0UHjjqPwqQx5dwmuaDHaDSCYRjU1dXxE3rGx8cRCoVA03RCL6XRaCxYHIotWqUQrFIdo5AUba7q13TpV5PJJPt74fP50NnZKes+5ytLVhSlQvoUhZCIS6/XFzRgvNREIhEMDQ1henoaGzduLDjykkI+oujxePDRRx/BaDRiy5YtvGuJWFHKtN1CWQerM9WhzjQbPexuFG+4SnrxdDpdQvqZFPT4/f+fvS8Pb6s+sz5XiyXLsh3vdmzHu2xnIYvtLG3p0A8YWta2zFDga5kZ2oFpkzZshZQ8tKGUlFIYGAiELYW0nSlNWzrha2loKfAAJXEWlpDYluTdlnfL2nfpfn+4v5ufZG336kqyY53nydPiRLq6lnTPfd/3vOfYMDQ0FBQEHK8Y5HyoFFMV/pvoqkQ86leXy4Xjx4+L1n41m81xJ2QsdWRIUSDIniLAf/GeIFFXHL6PJ6bYU1NTqKioAMMwKSVEIDopOp1Ozhgg3O9RaNt2qbdPxUA0UpHL5Qscekg1YrVauWqEZVmoVKqg9isZCZwvlWKyk1H8fn9SOkd0+zU3Nxcejwdr164V1H4Nh4z6dBlAjPapy+XC6dOn4XK50NTUxPtOisz1hH7Z4318IBDA6OgoRkZGOFNst9sNk8kk6LiJIByx+Xw+9PX1wWg0cuka4SCUlJYKKS4mwg1XjQQCAS5JJFTQEwgEkJ2dDbfbnRTP0POlfZqqapQcQ0j7NVx0Gp8sxaWOZUuKgPCLnNvtxsDAAEwmE9avX4/i4uKEdg2FpnUQV5xIj6fnciUlJdiyZQvXukl0pUMo6N8TTdarVq2CRqOJ+nsUWimGmykyDCM4iioZSIWZdqKgTc9DBT2Dg4NwOp3o7u7mVJNiCnpSEet0vpBirIBhPuYDJ06cgFarxezsLKamplBXVyfK63/00Udx1113YXp6GsXFxWBZFjt37sRrr70GlUqFl156CZs2bUr4OEKwrEmRL8ji/fT0NGpqamC1WiNWNfFAjF3DSArYubk56HQ6qNXqoLkcQSJrFQRCCYWQdW9v7wKyjoZE2qdLcU9RbCSDVIigh6RKkNBrOnKLFvTQlQgfQU8q0uoT6drwOUYqK8V4EU79yrIsqqqqcPToUZw4cQKPPfYYent7kZ2djd27d+OKK64Q9PpGRkbw5z//GatWncsG/dOf/gS9Xg+9Xo/Ozk5885vfRGdnp6DnTxQZUowDoYv3xIVmaGgooedNhiuNzWaDTqcDwzBRA5QTJWShVZbZbIbD4cDk5GRYso7nmHyxVNqnSxmhVVYkQQ+Zb9GCHjIHI1VluAv6YlSGCj1Gss8jVqUYLxiGwcqVK3Httdfi8ccfx6FDh8AwDGw2W0LXrdtvvx0PP/wwrrnmGu5nhw8fxk033QSGYbB161aYTCaMj49zHYlUYlmTYqyLXCAQwNjYWFR3l0QgJim6XC709vbCbrdDo9HE7P+Ltfwf7xfc6XRCr9fD7XZDqVRi3bp1go4phMgzpJj8SiueGyS5XI6CgoKgz6bf7+eSRMIJekhleb7vKS7mY7AsG/S5j3SjHQ8OHz6MyspKrF+/PujnBoMB1dXV3H9XVVXBYDBkSHGxgF68Ly4ujurukggSrdZkMhk8Hg90Oh1mZmbQ0NCANWvWpGRGRl57rDtSn8+H/v5+zMzMcIbiR48eFXRMiUQi6CZCrD3FDCJDKGlJpVLk5eUFxRLRgp7Z2VkMDg5yO8EDAwNBQhAxP+vnCyn6fD5eHZhYIN+deH/Xl1xyCSYmJhb8/MEHH8TevXvx5z//WbTXlgwsa1IMfZNZlsXs7Cx6e3vjXrxP5A42kUoxEAjAYrHAYDCgoaEBW7duTUl4KUGs+V6oiEaM1yf2nqKQ51mq5LqU9ghpQQ/BzMwMZmZmkJOTA7PZDIPBwCld6TllIoKepVjFpeIYLpcrpssVjTfeeCPszz/55BMMDAxwVeLo6Cg2bdqE48ePo7KyEiMjI9y/HR0dRWVlZWIvXCCWNSnSMJlM0Ov1UCgUcS/ex1stRYIQUmRZFhMTExgYGIBCoUB9fX1Q2yFViFTlEg/VWCIaIRdRMfcUWZZFIBDgqoN4CHspk2KykYr2ZlZWFkpLS4Psxug9vKmpKTidTkil0qDWa05OTlzvbyoqxVQIhhZrbNS6deuCIudqa2tx8uRJFBcX4+qrr8a+fftw/fXXo7OzE/n5+WlpnQLLnBTJ0Fiv1yMQCKClpSXuxXvgHKkJJUWpVAqPxxP3v5+dnYVer0deXh7a29sxNTWVNgVpOIKyWCzQarVQKBRRRTRCRTpiCG3I/9K/N7/fz/03y7KQSqVBMVnnA5ZSpRgOkQgr3B6ez+fjHHpGRkZgt9vjEvSkghRTgWQEDCd7cf/yyy/Ha6+9hsbGRqhUKrz44otJPV40LGtSHB8fx8DAgKDFe2BeOOD1egX37+OtFK1WK3Q6HaRSaVAVS2aKQkGITchdZajIR6/Xw+Vyobm5OWg+FO24fC9AiVaKdHXIMAw3JybPSf6O/Dtg/gJDiJL+t2JjqVehi8nRRiaTRRX0TExMwGq1IhAIBEVupWIlIxUQu1JMlpvN4OAg9/8ZhsFTTz0l+jGEYFmTYllZmeDFeyBx9Wisx9OKTY1Gs+CDGW1PMR4QYhPyBZJIJPB6vdDr9ZienuacaOL5XSayhC+UFN1uN+x2OxQKBbe4Tz8v/b/AQqL0eDyYmJiAUqmE1+vl2mDhHrsYsdTzFBN9/miCHpvNhtnZWTidTpw4cQJKpTKo/Uo+M0sFYleKJpNp2Vi8AcucFBMJywWSs2cIzO9z9ff3c7ZnkYhbjOV/IecfCARgs9kwOTmJuro63iKaVHmYkopPIpGgoKAAXV1d8Hg8UCqV3AUy0kWPPp/x8XGMjo5i1apVKC8v556XzsQkFeViJsrFTFqxkIzWJi3oKS8vh8lkQnt7O1wuF2c8MDY2BrfbDblcHtR6FWKsnapOQDIqxeWSpQgsc1JMFGJXirRJQE1NTUzbs0RJke/eH4nF0uv1kEqlaGxsFKQQS3alSM8NSeuTxN6wLMtd9MxmM0ZGRrjdydzcXI4sFQoF5ubmoNfrUVRUhI6Ojoh336FtV3Jc8t4xDJN2olzslVw8z5+K3x3DMMjOzkZ2dnaQoMfj8XBESYy1+Qp6UjWzFPs4mUpxGUEMU3AxSJFlWYyNjWFwcBAVFRVxmwSIUSnG+3iLxQKdToesrCxs3LgRExMTgn9/YnqYhiJ0bhh6cQh30WNZFm63GxaLBVarFcPDw7BarZBIJCgtLUVubi68Xm+QACf0dYUehybJ0IqSvA7yZ7FVlEKQikpRzJYgX2RlZaGoqCimoAfAggQK8rpTsY5BIOZ7YbVaUVdXJ9rzLXYsa1JMFJGChuOFRCKB0+nEsWPHUFBQgI6ODl7RNclq39IgIhqn04nm5mbujjGR1nMyPExpMiT/Nt4LA8MwUCqVkMlkMJvN8Pv9WL9+PXJycmCxWGCxWDA+Pg6n04msrKyg1mukvThCdPRFMJQoQ8U8hDyTQZRLfaa4GJWhsQQ9k5OT6Ovrg9/vh0qlglKphN/v5wzTlwoy7dMM4oZMJuPuDvnCbDZz2YEdHR28lmMJklkp+nw+DAwMRBTRJGIoLpRQw5FpImRIP8f4+DiGhoZQXV2NzZs3c89RUlISZPpOjK5DiZK0XonRNR+iNBqN6O3tRVlZWRBR0ucjBlEu9fZpsp9fDIQT9JAEiunpaXi9Xpw9e5ZTrdPGA2IIepJx85OKlYzFhGVNiulonzocDuh0Ovh8PjQ3N+PMmTOCCBFIjtCGZVkYDAYMDQ1x2YvhLsZEfSoEQh1m6PZp6NxQCBkC8/MSnU6H/Px8tLe3x7TzC2d07fF4uNbr5OQkHA4HJ8wgF8hwROlyuaDT6RAIBIJWbehKkiZ8Wsyz2FqvS71STObzkx1Jv98Pt9uN5uZmbrZNjAdCBT2ELPkKepJhap6pFJcZEtkPk8vlcZOix+NBX18fzGYzmpqaREm8T9TTM5RUiYimsLAwpt9rIoScaPs01twwHpC2sM/nw5o1a5CTk8P7OQiysrJQXFy8gChJRUkLM/Ly8pCTkwO73Q6j0cj5wdKI1XoVQpRLvZJLdp5iqnxPyTHo2TbdiaAFPTMzM9znhq4oowl6kjG3NJvNGVLMID7Esyfo9/sxODiIiYkJ1NXVoaWlJaznajr2oEgL1Gq1QqvVQi6XY8OGDXFVrkKJLZHHkn1Dq9UKpVLJEQEf+P1+DA0NYWpqCg0NDQnlYUZDOGGGx+PB6Ogo+vv7IZfLwTAMBgYGMDMzw7VeI13w+M4ogeDWa7Kx1NWni8UMPJKgh1SUtKAn1KEnUYetSLBYLILMTZYqlj0pJqtSDAQCMBgMGB4eRmVlJbZt2xb2S0eqn1Sp0kJf4/j4OMbGxoJENPEglZUifcEvKyvjhD+06CUvLw9KpTLihZkEG/f392PlypXYvHlzSluPdrsdOp0OcrkcW7Zs4YzmvV4vVxkMDg7CbrdDIpEEtV4TJUpy46NWq+H1ermbCTHPf6m3TxezUbdMJsOKFSuCqrVAIBBW0EOuSbOzs1ySSKJwOBxxeUGfL1j2pJgIws0UaUPseGKnZDJZSqXawPyd5+DgIAwGAwoKCrBu3bqUmXPzeSxtzUYqBVoaTq9RhFOHEqK02WzQarVQqVRoa2tLqfKPCJbm5uag0WgWtKHkcjkKCwtRWFgY9BhClENDQ7DZbNyiOTkvtVodF1GSz2JFRQVXfZDfvc/nC/J4TYQolzopLpZKMV6QGyfaq5mEBUxOTmJubg7Dw8Pwer1QKBRBFWW0m8dQkIJhscyuU4EMKSaA0CqTiDZUKlXcqfKEWBO5UMd7QQoV0bS0tMBisQjOwRNKivE8Np65oUKhCKsOJWsUBoMBFosFLMuitLQURUVFCxbrkwVygRocHER1dTUaGxvjPmYkqT+ZUY6MjMBmswFAkOqVNrl2OBxcS3zTpk0LItDCrYOQqpKAD1GeDzPLVJBiMnctiZ9vXl4e6uvrAZzbwSU3WePj43C5XJDL5UFzyliCnqVkc5colj0pivFmk6QNlmWxevVqXsnUYvmXxvqyhRPRzM7OJlTtJaN9muiKBUlMcDgccLvdaG1tRX5+/oI1CnL3HE/rlS+I0YFarY5L0RoPpFLpghaa3++HzWaDxWLB6Ogol1oPzLdla2trsXLlyrDVSTS/10hEGS1BZKmTVirMwP1+f8x81kQROlMkO7hKpXKBoIfMKUMFPYQss7OzBc3tI+HJJ5/EU089BalUiiuuuAIPP/wwAODHP/4xDhw4AKlUiieeeAKXXXaZKMcTimVPionA7XbD6XTi7NmzaGpqCmqBxQvSPhWKWMN1krAhk8mwfv36oNlAsogtnseGazsnum8IzLcL+/r6UFpais2bN3OEEHpRoCvKsbExuFwuKBQKruoSQpREYexwONDc3MwrhkwIpFIp8vPzuVkwaZUWFhYiOzsbVqsVJ0+eBHDOZYWcH1+ijJUgQv4uWUiF0CYVtRHEYgAAIABJREFUM8XF0qLNysoK27a32Wyw2WwwGAzYs2cP+vr64PF48MQTT2Djxo1Yv359zBSccHjrrbdw+PBhfPzxx1AoFFyuYldXF15++WWcPXsWY2NjuOSSS7hEoHRh2ZOikAsvvdgul8vR3t4u+E1MliuN2+2GXq+H3W5Hc3NzWEl1ImIZsYQ2oXNDoWRos9k4G7oNGzbEbF3Har3yIUqWZTE6OorR0dGICuNkIp5WKakox8bGYLPZEAgEuBklaaGFu7GKRZR+vx9jY2Pw+/0IBAJJSxA5H1YyUkG8Pp8voSg7uhvx61//GlqtFnfddRdycnLw61//Gvfeey9eeeUV3qrt/fv3Y9euXdxnk1gsHj58GNdffz0UCgXq6urQ2NiI48ePY9u2bYLOQQwse1Lkg0AggNHRUYyMjKC6uhpbt27FqVOnEhqgi9U+JSArIJOTk6ivr8eaNWsiXkzSsWtIP1aMfUOSKGKxWNDU1JTQPhVfoszLy0MgEMDQ0BCKioqCKtNUgLzXMzMz0Gg0EWXzEokkbGyS3W6HxWLBxMQEF7Sdk5MTdBMQjSjtdju0Wi1yc3OxZcuWBe9rOL9XoUSZEdqk5xhutxtVVVX4+te/ntDz6HQ6vPvuu9i9ezeUSiUeeeQRdHR0wGAwYOvWrdy/q6qqgsFgSPRlJ4QMKcYBlmUxOTmJ/v5+lJaWYsuWLdzFIlGhTKLtU0JstKl4ZWVlXHFO6SJFhmHgcrng8XiCls75gK7O4kkUEYpIRDkzM4Pe3l54vV7IZDJYLBYMDAxwhCLmjDIcSJu4oqICHR0dvC/otHqRJJ3QMv+pqakg307a75VhGPT398NsNqOlpSWoTRzNGD0SUcbjzrPUZ5ZAakhR7D1FPgkZl1xyCSYmJhb8/MEHH4TP54PRaMSxY8dw4sQJXHfddejv7xftdYqJZU+Ksb5oRqMRer0eubm5aGtrW9Ca4uNqEw4ymUywXRp5vNFoRE9PDwoKCmKugNBI1NSb7wyJXBxVKhV8Ph9OnjzJxe/QO3nxviexIp2SgUAggLGxMUxOTkKj0XBuNCSOiqheQytKsYiSbpVu3LhRVOEGTZQrV64EMP+ekYpyamoKPT09cDqdyMnJQVlZGTweD7xeb8TPXKKmA+Tx54vQZqlVinws3t54442If7d//358+ctfBsMw3I7wzMwMKisrMTIywv270dFRQXF0YmLZk2IkEIGKRCLB2rVrI9qASaXShEhNKpXC6XQKeiwJ+pXL5QtENPEeO5EqNV6Ezg0VCgXWrVsH4NzyusViQX9/f5AdWqhvqNPphE6nAwCsW7cu5QvFpDorLy9fsPwfTuEXiyhJbmM8RBlvq1RsMAzD7UROTk4iPz8fbW1t8Pl8sFgsmJmZwcDAALxeL1dRkpucSN0TIUSZaJs9FgKBQNL3V5dipWixWEQxA//iF7+It956C5/73Oeg0+ng8XhQXFyMq6++GjfeeCPuuOMOjI2NQa/XY/PmzSK8cuFY9qQYzqSZOKaEW7YOhVwuT1g9yvfxbrcbvb29sNlsKC4u5oiDL4Qac/NBrLlhuOV1r9fLzfGmpqbgcDjg8/kQCARQWVmJlStXCjZRFwK6OotHxEMQiSiJ4UC8RJloqzQRBAIBDA4OYnp6OoiMFQoFcnJyUFFRAeBcEoTVaoXRaMTQ0BA8Hg+ys7ODiDJSZRuJKF0uF7RaLdRqdVITRM6X9qnYxxArIePmm2/GzTffjLVr1yIrKwsHDx4EwzBYs2YNrrvuOqxevRoymYxb2Ugnlj0pEhDBxuzsbNiopEgQo/0Zb/s1VESzevVqjI6OCiblZC9bC12xkMvlKCoqQmFhIRfpVFVVBbVaDavVCr1eD4fDwcvmTQhiudEIASHKSAHHNFGqVCqYzWYoFApeZCwWjEYjdDodysvLY5IxSYLIyclBeXk5gPlzczqdsFqtMJlMGB4e5oiSbpmHI0oyMx4bG0NjYyPXpk5WgkgqSDEVphE+n0/09mltbW3Cz5OVlYVf/vKXYf9u9+7d2L17d8LHEAvLnhTJnbDBYEBNTQ2ampp4fTnEWKmI9fhoIhqZTAaXyyX4+GJDrH1DkjeZl5cXtADPRxnKpz0Zeg5C3Wj4gl6uJkTp8/nQ19eH6elprFixAl6vFx9++KEo5xYP3G43dDodF7YstCpnGAYqlQoqlQplZWUAwEUmWSwWmM1mjIyMwO12Q6lUchWlRCJBf38/F7xNX+TFmlGGIhUzRfJakgmxyX25ZSkCGVLk9qm2bt0q2KzX7XYLPn6s9uns7Cz0ej3y8/PR0dGxYO6R6EpHoiB3v2LtG7pcLvT29sLj8aC1tTWqO1A4ZWi49iS54EarTAhIYkhOTo5objR8QLdKP/WpT3EXOLqipGeUSqVyQdUl9MJLqjODwZC0BBE6MokmSrfbDZPJxJmiZ2VlwWq1xqXoFYMo02XKnwyISbxWq3VZxUYBGVIEwzCoqakR7MaRaKUY6fFkGZ1hmKAA2lCkSiwTDrT3a6JCCL/fj+HhYUxOTqKhoQHFxcWCvtzR2pN0ZUJmXeQPwzDo7e3lzA6S7UYTCqfTCa1WC6lUGrZVGq6iDCXK0dFRruriS5RmsxlarTZsdZZsMAzDEWB1dTWnPiSenaFCpXjs+fgQpc/ng8vl4lZGkiXmWYrIVIoZ8IbYjjQejwe9vb2wWq1xqQzFIEWhsw6JRAKPx8NdeITuGyYz0ikSmZCK0mg0QqvVwuVyQa1Wo6SkJOaagZgg+Y7T09O8rQL5EmWo4IVhGHi9XvT19cFut/P27RUDREjDMMwCN55wQiX63EKTUci5ZWdnx02UVqsVPT09nA0eIUsxE0QACL7pTvcxlluWIpAhRQCJZSomSopk349cHMfHx1FfX4/W1ta4hT5iLP/zkXGTC0deXh5OnToFtVqN/Pz8oJlQPCBrL9nZ2SmNdCItPNKyKy0tRW1tLad6nZ2d5dYMiMMLOTcxiZIYAIipKuVDlMREoby8HGvWrEmpkIc2X2hqauKENLEQrmXu8Xi4c5ucnITD4eDSIghRhqZA0KralpaWoGqIjzF6vDeCS9VGjs+e4vmCDCkmiERJkWVZeL1eHDt2DCtXrowYRhwJqUrZIK+Vbj81NTWBZVnOV9NgMMBqtXK7bXl5ecjPz18QkkuqYYfDAY1GI8hgOBGQuaXX68WaNWu4HVS5XA6VShWknnQ4HLBYLNysz+/3LyBKvnthsVqlYiOUKO12O7q7u6FQKLBq1So4HA50dXUFVZT0HE9skOpsxYoVoljjZWVlobi4OIhYPR4P13olaz1yuZx7vyYnJyOqavkaowPRE0SApWsO4PV6U5o/uhiQIcUEkQgpEsm73+/Htm3bBH34Em2fxvv4SPuGDMMs8NWks/9ISC6JpSFL3w0NDXFXw2IhEAhgeHgYExMTcQlJ6DUDeh+POLxMTk5ynqF0AHCkFArSDZiamoJGoxGUqpII/H4/BgYGYDQa0dzcvGBWRNrKVqs1rDI0UaL0+/3o7++HyWRaYA8nNrKyslBUVMQFKwPgzB+sVitUKhWmpqa4hHraKCJaeLOQBBGGYURflQgHsRf3U9HyXYzIkCISU2sJISVipMwwDNatW4ePP/5YcFsu2aQoZMUiXPYfIRCVSgW1Wo3BwUGMjo4GiV0izYLEAGlVlpWVJTS3JFWwWq3mrNBoc+3x8XHodDoEAoGgi63b7UZ/f39YN5xUgJz/ypUr0d7eHvb4tDI0dP4ajShjKXrJ8fV6PaqqqtDe3p7y0Fpy/lVVVbjgggu449OOSgMDA7Db7ZyBOnn/QjsdBHyIcm5ujpvBi50gQpAsc4DlFDAMZEgxYfDN2+vt7YXFYkFzczM3wBYy1yNIxJg72uPF2je02+1cnmN7e3tQlUE710xMTHDhv2Lu4jkcDi6fLVmtykjm2jabDbOzszh9+jQX6WO322EwGHjPX4WCFrIIOf9oRBlp15B+79xuN7RaLQBg48aNKTcg8Hg80Gq1CAQCYb1iwzkq+Xy+BZ0O+j3Oy8vjrO9CEUp2Xq8XWq0WPp8PTU1NkMlk3HySFrglkiBCv24xK0W3273sWqdAhhQBJP9OKJaIJlZQcDQk+tpDK0Wx9g2JQ5DZbI7oBkOca+gWVzTlJJlRxvNFJa3C2dnZlHqF0piZmcHU1BTWrFmDwsJC+P1+bv46OjoKm80WNH+NdrHli0AggJGREYyPj6OpqSnod5woIu0a0kQ5PDwMu90On8+HkpISlJeXp7TiYFmWc0NqaGjgCD0eyGQyFBQUBH1mSACvxWLB8PAwR5ShmZT0e0eSderr61FaWrrg/ENXRIQmiBAkw+It1fP+xYAMKYqEcGsN5Is5MDCAlStXRjQISOeuIX1s8sUk5yLk4syyLAwGA0ZGRgRFOoWqC+mLLW0VRscZ5eXlce1nEvM1MDCAqqqqlHuFAudadaGtUqlUivz8/KBZHj1/pS+2ockhfM7BZDJBq9WiuLg4ZTuHNFHm5ORgbm4OZWVlqKyshN1uh8lkEtx65Qun04nu7m5kZ2eLZsAQGsALnHvvrFYrd5MDACqVCna7nUsyiVQdi+3Okwwz8OWmPAUypCgKwrU/5+bmoNVqkZeXF9aJhkaiCtZEQNSrJDkdEN4qNRqN6O3t5RbAxfiCRqpKiCp0ZmYG/f398Pv9yMrK4mKNNmzYkFLTcOCckINPqzLc/JVu3xGHl3gitkh73uVyRU12SRYiCWnUanXYipK+yRGDKFmWxfDwMMbHx4PGE8lC6HtH7BgHBgZQVFQElmXx8ccfA8CCijLSjUoiROn1ekX3Pc1UissUibZ16PYnmaGxLIt169bFdWESw6pNyAI+MVCemJgAwzBxtyZDQUc6rV27NumRTqGqUK/Xy81qy8vL4fF48MknnywQuyRrhhcIBDA0NITJyUlRWpWR2nekrRwuYsvpdGJiYgL19fUoKytLm5CFCHkiHT9W65WvcTiB1WpFd3c3CgsLU+7IA8zPbsmay5YtW4Kq00AgwFWUY2NjsNlsCxTLarU64k1kLKIMBALweDyYnZ1FeXk5vF6vKAkiJpMpUylmIAwymQxOpxMDAwPcDI2P3D7VC/j03LCiogJZWVmYm5vD0NAQfD4fVCoVt4yfl5cX8QJDz+0aGxtFnVvFex6kVVtbW4uWlpYFC9p8dyj5IlKrVGzIZLKwEVtTU1Po6+sDMP85GB0d5e7wk63oBc6ZhwcCAcFCJr5ESStDZTIZV522tram3J6PfAaJCUG474BEIlnQNqc/m+Pj47BarRxRknOLtgNLE+Xs7Cx0Oh1WrVqFsrKyBSI5oQkiy7V9yvDcRTkvF1dYloXH4xH02EAggM7OTni9XjQ2NqKiooL3RWhgYAAKhYKT+PPFyZMnsW7durhaTqFzw3BzULJeYDabuS8r+aISIpmamsLg4CCqqqpQWVmZ8rmdyWSCTqdDQUEB6urq4r4hoGd4FouF26GM1ZoMBd0q1Wg0KVdV+nw+TsjU3NzMtbnopXWLxZK0iC36hoSvkCWRYxKiJM5DdrsdKpUKpaWlSZtRRoLD4UB3dzfUajUaGxsTrk7p1R5SWRKzCJooSRXq8/mg0+ngdrvR2toa9jMYqfVKEK2ifOmll+D3+3HbbbcldF6LCHF96DOVokCQeKH+/n7IZDK0tLQIvjCI5UoTDfGuWETawyMX2r6+PszNzUEqlaKkpARSqRQOhyMuIhEDbrcber1+gRtNvIg0wwttTcpksrA7lGK3SvmCZVnOXae6uhpNTU1Bv/dwS+tiR2zZbDb09PQgNzdXtNlxPCAVpUwmw+zsLBQKBbdzGKmiJH/EXC1gWRYjIyMYGxtDS0uLaNUUvfZBEAgEuPk56QqQrpDdbkdFRQUaGxsjnp+QGSV5nNlsRlVVlSjntpSQqRTBv1Kcm5uDTqdDbm4uGhsbMTIyEhSuyhdjY2Nwu92oq6sT9PjTp0+jrq4ubOtIrH1DOtKJVEZkoZtUJIRISOtVzNDfUDcaoSka8YLeoTSbzXA6nWAYBm63G0VFRaivr096azIUTqcTPT09kMvl0Gg0CV3oyUI+Ocd4IrZoR5yWlpa0iDDImkNtbW3ENQ863Jicn1hEabfb0dXVhRUrVqC+vj7ls0tSHdrtdpSVlcHpdMJisXBjD3p+zuf8QolyfHwcX/rSl/Dv//7vuPPOO5N4RilFXF/WDCn+HfFkIjocDmi1WrAsC41GwyUKDA8Pg2EYVFdXCzr21NQUzGYzmpqaBD2+q6sLFRUVQcIMsfYN+UQ60cbMZrN5wYVWqJCHZEqWlZVh1apVKb8QkVZpIBBAaWkpXC4XzGaz4B1KviDV6dTUFO8kjXgRahpusViCIrYAYGJiAlVVVaiurk65kIeYEEilUkE3BIkSJf0etLa2puWGgNhCVldXY+XKlUHvAa3IJufo9XqhUqmCRgOxfm8sy+KVV17BT3/6Uzz44IO48sorzydHmwwp8oHH44no9efxeNDX1weTyQSNRrOgZZZopTc7O8t92YRAq9WiqKiIM0SONTeMB6RNR6zJVq1axXtuSC60pJokF6JQIU+k9htxo5FIJGmZ28VqlYbOuOjzC7dDKQTkQlhWVoaampqUzm5ZluVCl91uNxQKxYKKJNHzi+c1kOBjsdvVhChpIglHlG63G93d3SguLkZtbW3K5+c+nw96vR5OpxOrV6+O+3sQ7fzCqXpnZ2dx5513QiqVYt++fSkfDaQAGVLkg3CkSFp2BoMBtbW1C+7OCBKt9IhV1tq1awU9vre3F7m5uSgtLRWlVUoinZRKJRobG0UVLtB3tETI4/f7gxSh2dnZGB4exuzsbNIqo1igq1M+ZESfH/kTmqwRTdFL4PF4oNPp4PP50NzcnPKdS7JzNzw8HCSkoS+05E+41p0YREnSPPLy8tDQ0JCSDkHo+U1OTsLj8WDFihUoKChIyowyGqJVh0IQeiNnNBpxyy23YMWKFTAYDPjqV7+KnTt3inKsRYgMKfKB1+vlyIS4ovT19aG8vBy1tbVRv5BGoxGTk5OCKz273Q69Xo8NGzYIevzAwADkcjknZxdKhqQittvtKY10IvJ0s9mMqakpmEwmTjBCKspEVyfiBe0VKlZ1GkvRS+9Q0jmDqVJ1AgACAWBmBggEYFMo0NPXh9zcXDQ0NMQU0sRzI8AnYotkHc7MzIRN80gFzGYzenp6uJY9TSRWq5XrCPBpTfKB3++HXq+Hw+HgVR3yhcViwT333AOTyYSrr74aAwMDOHXqFPLz8/Hyyy8n5ZhpRIYU+YCQIrHIIjLreKokYhy8bt06Qcd2uVw4e/Ys2traeD2OzA1nZmag0+k4RSEhkngrvEAgwLWo6urq0rL8bbPZoNVqkZ2dzcnbScvHbDZzri70/E5MoUuqVaX0nhq50Pr9fni9XuTm5qK+vh55eXmpadV5vZC88QYwPIyZ2VmYpVIU3nQT8v8elyUE9I0AfX6xIrYIGZWWlqa8XQzMk1FfXx8sFgtaW1sjqpvDVcxkhkfvUQohSuKGRdadkvFdZFkW77zzDnbt2oXbbrsN//Iv/5Ly33UakCFFPiBfRr/fj+bmZk5EEw+IAGfjxo2Cju3z+XDq1Cls2bIl7seEmxvSd7Nmszmu+R1ZPi8pKYlZEScDXq8XfX19sFqtQft2kf4tfRFyOBwLVguE3FELbZWKBZ/Ph97eXlitVlRVVXHnKXSHki+Y7m44jxzBCMuisLAQJX4/2NWrwW7bJupx6D08QpSkYs7JyYHZbIbX641KRskEaVVWVlaiqqpKkENUIkRJV4etra1Ja5k7HA58//vfh16vxwsvvICampqkHGcRIkOKfNDf3w+lUimoQvB4PPj444/R0dEh6Ngsy+Lo0aP41Kc+Fde/jXduGDq/s1gs3EVIqVTCaDRCoVCkRcQSahwuxPQAwAIhD1FM0jcCkeZbLpeLs+TTaDRpmdsR8/JIvwN6hzJ09UUM1xqPxwPDb3+LrP5+lK1ZM99dsFrB5uYicPnlYpxmVJAuxeDgILKzs7nPdWhFmcwbFVrIIjYZke8grXqliZKcH8lYTWZ1CACdnZ244447cPPNN2P79u3LoTqkkSFFPiCm2EJAXG22JXBn/f7770clRbH2DYktl8lkglqthtvt5kJVCZGoVKqktk/NZjO0Wi236yV2Wji5WydkSc+3iCOPwWDAxMREWhbwgXNB00TMxKfNFm6Hku8yPh2tpJHJUHryJFBVBTAMYDAgsGULWIEz7nhBsg5ZlkVzczPX7qcjtkjFLLY9HwEJP07kxowvaKI0mUyYmpqCz+cLEvPw3TOMBbfbjb1796KzsxMvvPACNBqNaM+9hJBxtOGDRL4MRCCRDIi1b0hXZqtWrcLatWu556Grkd7eXs4ajJBkfn6+KApUt9uN3t5euN1uQW408YBhGKhUKqhUKs5Mgcy3zGYzt3xOshwJgYqVYxgLfr8fg4ODXM6jEDcUvjmU5H0kF1m73Y6enh7k5OTMO9JIpQhIpZB88AHAsvOtU4Hz8XgQK+swVsRWaPAv3VqO9z2kw383bdqUMms44JyhvdfrhclkQl1dHSorK7nP4uzsLAYGBsJWlEKI8vTp0/j2t7+Nf/qnf8Kbb76ZMgeipYpMpfh3+P3+hKzWYlV6Qh4vxr4hMD+41+v1vHxCyUWWVFtut5v7gpKLLB81IQm8ra+vR0lJSVqWv+lWqUKhCBLykIssLeQRu2Ims8uKigpUV1cnlYQj7VCSzxSpjIJayz4fwLJAEvcO6azDxsbGhFY36Igti8USd8QWsUtLl6jM7/ejt7cXNpsNq1evjtiujbaQH8+eqNfrxWOPPYYjR47gueeewwUXXJDM01oKyLRP+SAQCMDr9Qp+vBikuHXrVq7qFKNV6nQ6odfrEQgEoNFoEop0iiS7V6vVHEmGm/0QIiBqwlQLeWh7uMbGRs7gIBxC53ckKJaeTwqxrqMJubm5OeXzW2BeREJMHtRqNXeRFbJDKQT0jVEysw7DzWCJalmlUmF6eprzKk7VriENk8mEnp6ehMQ89PfQarUGEeX4+DgaGxthNBqxY8cOXHzxxbjvvvvScq6LEBlS5INESfHo0aPYsmWL4Lv/48ePY8OGDZBKpQmTIWnRzczMJDXSiV4rIPt3pNrKzs7GzMwMZDJZWkQsgDiqUo/HEyTk4WNdR0QkY2NjMQk5WfB4PNDr9fB4PGhpaVnwPvDZoRQKknVYVFSEurq6lIs7PB4PhoaGMDY2BpVKxRlqiyVWigdk1cNqtUatDoWAJsonn3wSf/nLX2AwGNDW1oZLL70U7e3t+OxnP5shxgwp8kOipHjixAmsX79e0AePZVl88MEHWLVqFfLz87ncMyHPMzExgcHBQe5ONNUXIJJiYTQaoVKp4PV6uegi2ig8mUimqjS0LUnWCEKrLZvNBp1Oh8LCQtTV1aW8QqbndvX19SgtLQ3/mWJZMIODYIxGsGVlYKuqwu5QChG6+P3+oKxDPmtOYoEO/21qauJajamK2AISrw7jxdDQELZv344NGzbggQcewOjoKE6dOoVTp07hhz/8YVrWXBYZMqTIB4lkKgLAhx9+iObmZt4tSjLjmZmZwfj4OOx2uyASMZvNXHJHfX19yu8KWZbF1NQU+vv7FxAyLQIhRtrJ8M/k0yoVE+RO3Ww2w2QyYXp6Gn6/H4WFhSgqKkrJWgENIqRRqVQx53aSP/wBst//HqxEAoZl4fuXf0HgwgsX/Du+OZRk52/lypVpMRCnhWXh/IrDgXxOyXkKUfXSoKvD1tbWhMYX0RAIBHDw4EE8//zz+K//+i/8wz/8Q1KOcx4gQ4p8kCgpfvLJJ6ipqYnbGi3a3JC07OIRudCKTjq5I5UgVVG86wVkbYJuS4b6n/IlkXQaZwPBlVltbS1KS0uD2pJkrSA0rFlMsiD2aNPT02hubo6tbJ2eRta994JduRKQyQC3G5iZgfc//xOI4wIeaX7n8/nAMAz3GlJNiE6nE11dXcjJyUFjY2NCakshEVvA/E1qd3d30m8KxsfHsWPHDtTU1OCnP/1p2Pg4MXDzzTfjD3/4A0pLS3HmzBkAwJ49e/D888+jpKQEALB3715cnoLd1gSQIUW+iCc+KhK6u7tRVlYW07xaiIgm0hI+ME+gNTU1qKqqSosbTX9/PywWCzQaTUIelcTthNwMEBKhLz7hSCTdC/jAudBdtVqNhoaGiJWZ3+9fIOQhIhBysyN0tkWswfgkmjA6HeTbt4NxuYDsbAQuuADM9DT8GzeC8XgQaGhA4POfB+Jou5FOQV9fHxc+LUa1xQfJCv8NPUa0iC21Wg2j0cgpS5NVHbIsi0OHDuGxxx7DQw89hC984QtJvfl45513oFarcdNNNwWRolqtxl133ZW044qMzJ5iKiGTyaKudCSyb0j2mkiQMUleLygoQHZ2NqxWK06cOMHtd5GLrJghv6HnQhIUampqoNFoEj4OnTpO0r4JiZjNZvT398PhcEAul3PtSKvVipmZGTQ1NaVFxEJmZnNzc3GF7kqlUhQUFAQpL+lF/ImJiQUkEmtH1Ov1QqfTwe12Y/369bxuCiSvvw5mZATIzgZjs0H6v/8L+P1gTp8GcnPBaDSQjI/D961vAVFI1uVyoaenBzKZDO3t7Qs6BXx2KIWCJGrk5+ejo6MjaTeIDMNAqVRCqVQGJYe4XC5MTEygu7sbMpkMEokEer1e9BEBAExPT+OOO+6ASqXC22+/nZIUmc9+9rMYHBxM+nEWAzKkSIFhGMFL+NFIMXTfUGhrj5hmK5XKsAvH5AJrNpsxPj7OtXrIIrQYX0wyu8zPz0d7e3tSs/TCkYjH44HBYIBWq+UuPqOjo7BaraJffKKBVEVVVVXo6OgQfFMQbhGfFvIQEgmdwcpkMk5UJWjfjmUh/dvfEPj0pyHp6QGsVsBmA1u+xgKrAAAgAElEQVRUNN9OnZmB5JNPEJDLgdlZ4O8tsuCniC/rUKFQoKSkhGuz0WKlubk5DA0NCc6hXAzhv+T3YDab0dHRAZVKFeSsRJbxE43YYlkWf/zjH/HAAw/gBz/4Aa699tq0xzvt27cPP//5z9He3o5HH300aas2qUSmfUohWtBwLIyMjIBlWaxatYr7mVj7hh6PB/39/bBarbzalOTiQ88n49ktDIfFMLt0uVxBe5fZ2dlRz5FUImq1WrTKwel0coTc1NSUEieU0BmsyWTiBFmVlZUoKCgImzgR40mR9a//ClatBpRKwGiE9N13wSoUYCYm5ueLANgVK+D5/e/Bhvj6kpZxXp44WYdCcijTveoBnAsSIG3rWNZ6QiO2TCYT7rnnHtjtduzfv5+LiUslBgcHceWVV3Lt08nJSRQXF4NhGNx3330YHx/Hz372s5S/Lh7IzBT5gs5U5IuJiQnY7XY0NDSIRobJiHQKnd3Ru4WkoqTnWovBjYavqpQ+R3qlIDc3Nyifkc950NFSGo0mLcHHtJBGo9FAJpMFCXlYll0g5IlGFJI33oDsmWfmRTZ2O5jhYTCjo/Mzxr+DZRgELrsMnt/9Lug1zMzMxNUyTgSRdijVajU8Hg9cLhfWrl2bluowEAgErZsIXXeIFrF16tQpVFRUwOv14oEHHsBdd92Fr371q2kz8Q4lxXj/bhEhQ4p8kQgpzszMcEnxifqUAvOL5729vSguLk56pBNRERISIZFMWVlZMJlMKC0tTVnyeSiMRiP0ej1KSkoScsQhKwXkZoCkTYT6u4Z7v+bm5qDT6dKW8RfvayBG2uR9pNcmIpm9M6dPQ9LVBdZmg/ypp8DodAuuHIHiYrj1epj+HpFGgnfT9Xvo7u5GTk4OZDJZUs3CI8FisaC7uzuu6lAIyE3df//3f+OVV17hBFRtbW1ob2/HTTfdlJYbgVDiGx8fR8XfMzcfe+wxdHZ2LvZg4gwp8kUiSRlzc3Po7e1FQ0NDQjtpDocDOp0OEokETU1NaVFTEn9Kn8/HxdqQBXVSTfJu1/EEaZWSfMtk/B48Hk/QzUDoDFapVHLGzOHcYFIBr9cLvV4Pl8uFlpYW3mpGem2C3AzQS+r5+flQuFxQXnUVmMFBwGhccOVgVSp88v/+HyxyeVL37aIhWvgv3x1KoSDV4dzcHFavXp3UZfj3338f3/3ud3HLLbfg1ltvhc/nw5kzZ3Dq1CnccMMNKR9f3HDDDXj77bcxMzODsrIy3H///Xj77bfx0UcfgWEY1NbW4tlnn+VIcpEiQ4p8IYQUSavU5/PBYDBwUntShcS7gO/z+bh2TFNTU1oG1tHs4eikCdLKAhCkIBTrwkPatQ0NDZw4IxWg55MGgwEmkwlZWVlYsWJF0Aw2FRUz7U5UW1uL8vJy0SqSUOu6vNdfR+MLL0AikUA2OwsJ3T4F4MnPx8wTT6AgTcIOsm7CxxFG7BxKUh2SPdhk/R5cLhd+9KMf4YMPPsALL7yAxsbGpBxnmSJDinzBhxRjzQ3pCw/t4kITpVQqDVpvWLVqFVauXJkW94/p6Wn09/fzSnCg9+7MZvMCNx6+kVNitUoTgdVqRU9PD/Lz81FfXw+JRLJgrgWAa0kmYwnf4XCgp6cHSqUyyJosWZC89BKkL7wAZnwcPokE8rEx7urhl8mA3Fywl1wC3759QAorFLHDf4m1G/lexrNDmcrq8MMPP8TOnTtx/fXX4/bbb0/q5z/cMr7RaMRXvvIV7kbs0KFD54WalEKGFPkinvgoeteQz9yQtgIjF1ev18u1KBsaGpCXl5dyQiRuNMQbMtF9sUhuPHTSRKi6jgQfJ7NVGgs+n4+z5Gpubo7qDELPJ+nOQKg1H9/3khbzJDNJIhTMmTPI2rULrMsFycQE2LExSCgjCxaAT6WC7lvfgvO660QzCo+G2dlZ6HS6pN8ohrMgJDuUcrkcBoMBFRUVSa0OvV4vfvrTn+LNN9/E888/jzVr1iTlODTCLePffffdKCwsxK5du/DQQw9hbm4OP/nJT5L+WlKIDCnyRSxSFCvfkEQ6+f1+lJeXc0RCKi1SgURLYEgUhATEcKOJhnBuPCzLcsIIp9OJ2dlZNDY2prRVSr8+4tmayAWYzCfJedLzSUKW0So+k8kErVaLkpIS1NbWplzEInn/feDAAbjPnkWOXg8p1UIlYLOyYHzpJcxu2sQpJYnpglgtdGJGQOa4qY7ZIp/X3t5emM1mKJVK+P3+pHj1AkBXVxd27NiBz3/+89i9e3dKdmwJQoUzzc3NePvtt1FRUYHx8XFcdNFF0Gq1KXs9KUCGFPkiUlKGWCsWZGY3PT0dcdnZ7XYHVVoej0dUgQvt0Zmudm0gEIDBYMDg4CBXNYabwSb7dZE2pVhVMg16QZ28lz6fj9tJI+9lIBBAb28vHA5H2kQs9MpLx6FDyPnFL8A4HAv/IcMgsG4d3EePcj+ig35pVS8t5In3vUx3+C9wbveRtPBJvinfHcpY8Pv92LdvH373u9/h2WefRVtbWxLPKjxCSXHFihUwmUwA5j+/BQUF3H+fJ8jYvCUKsciQZVlMTk5iYGAAlZWV2Lx5c8RKQKFQoLS0NMhCighcxsbGuJ07ulUXb0I8caPJy8tLuhtNJNCt0vb2dq5V6vV6OfIYGxtLihsPQSAQwMDAAGZmZuIzzhYAhmGQnZ2N7OxsbtE69L00Go1wu93Iz89HeXl5UBciVbBYLOjp6UFRURE2b96MrMOHwUSKUGNZwGYL+pFMJgvrOhTJuo68l/Ss2ePxoKenBwzDoK2tLS25f+QzYTQasXr16iB1J22zSNSV9H7hxMQE9Hp9UAckWnu5v78f27dvx5YtW/Dee++lJXQ6FhLphC11ZEgxDITODcPBYrFAp9MhJydH0Bee7GCp1WpUVlYCCFbWkSpDoVAEtV1pAvF4POjt7eUEC+lwo4mlKpXL5SguLuYW82kl6MzMDPr7+wW78dAgwcPl5eXo6OhIaZuSvJdSqRRTU1MoKChAQ0MDV1EODg5yJuHJ9rClsw5pEgi0toLNyQFjtQJhRGfsihWA1wtEuUHJysoKei+Bc9Z1JpMJw8PD8Hg8yM7OhkQigdlsRmNjY9rk/HR12NbWFp+ZOvW9XLlyJYDg0G2DwcDdwObk5OCtt97Cpk2bcPr0afziF7/AE088gQvDRHSlE2VlZdzu4fj4OHdjvtyQIUUKxPtUDJ9SYovmcrliCjf4QiaTobCwMMhVhRCI0WjE4OAg16oLBAKwWq1oaGhAa2tr2iT1Op0OxcXFcZs105VWeXk5gHMXHbPZzPmdRnPjoeF2u6HVasGyLDZs2JCWu3O6TUm74iiVyqBqlfawJZWWmAbaJGarsrIS7e3twb+vmhqwFRWAxxO+hVpSAqarC+z69byOGWqi7XQ6cfbsWbAsi+LiYoyOjmJoaGhBpZVMBSbtzhNaHQoB+SzSi/V+vx8mkwkTExO4++67MTo6isbGRvzmN7/B0NAQ/u///b+LpiK7+uqrcfDgQezatQsHDx7ENddck+6XlBZkSJHCoUOH8L//+79ob2/H5s2bsW7dOt4XH/rCl0pbNHLRIa262dlZaLVaZGdnY8WKFRgaGsLo6GgQgSR7bud2u6HX6+H1erFu3bqE52XhLjq0G8/U1FRQ1Uz+7eTkJMbGxlK+90iDeGSWlJREbZ8DC03CSVyR2WzG3Nwcd9MTquqNRSBExOLxeCLeGLBqNZiZmcgtVIsFjN8vWFxAryCFhv/S9nxkVACAl3VdvKCrw/b29qR1DBiGweuvv4433ngDjzzyCC699FJYrVZ88MEH0Gq1aSNEehm/qqoK999/P3bt2oXrrrsOBw4cQE1NDQ4dOpSW15ZuZIQ2FLxeLz7++GMcO3YMnZ2dOHPmDHJyctDe3o6Ojg5s3rw5ojCF3vVLV9AtcE7ZGi5fkK5AQhWSYs7tiGdruoiIVM3T09OYmpri0jZS5cZDw+v1oq+vD3a7HS0tLaLtuYXzBY3kfUrPtGOJWGQPPQTZ88+DMRqBMKHbgaYmuN95BxBgM0acklQqVdzhv5HcamiBS7wzdUD86jAapqamsHPnTqxYsQKPP/74+bbztxSRUZ8mCpZlYTQa0dnZiaNHj6KzsxPj4+NobGxER0cHOjo6sHHjRpw9exbHjx/HRRddhMbGxpQkJ4TC7/dzETrRYnxoREqYCF1M50PudKs02Z6tkeD1erlZK7FGC3XjSdQgPBboVY+amhpUVFQkvSoI533KMAy8Xi+USiU0Gg1yc3Ojvg75f/wHZIcOcSbhofD90z/Be/Agr9dFh/+KsX/p9XqD9kRp6zpayBN6njabDV1dXdxnM1k3rSzL4tVXX8XevXvxwAMP4JprrklpRVhbW8vd+MlkMpw8eTJlx17kyJBiMuD3+6HVanH06FG88847OHLkCFQqFS688EJceOGF2Lx5MxoaGlJWJQp1o4kEMoOk0xfoxXTSdg0F3Sptbm5Oy2oBH2s0OsCYLOAn4sZDw+l0oqenB1lZWaKvesQLkvE3OjrKzWTNZjOnBKWFPPTrk+3ZA9m+fWB8vnlBTejzFhfD8/LLCGzbFtfroMN/6+vrk3aTFG4JPzs7m5tNknl7a2urqPP9UMzNzeGuu+6Cz+fD008/nZZ2fW1tLU6ePJmW4O1FjgwpJhNvvvkmbr/9dtx999246qqrcOrUKa6a7O/vR2VlJVdNtre3Iz8/X/S7RbvdDq1WC4VCkdQKlaxLkD+0S01ubi6sVismJibSOrOz2+3o6enhWnNC2sDkwkrOkwTfRnPjoRFJSJNqxMo6DN2fJLuweXl5KPvb37DiJz8BMzc330INBcPA/5nPwHPkSNTXQIf/trS0JM0cIhJIF2RychJDQ0Pzvq4yGbfzK2S3MNbx3njjDdx333245557cOONN6ZtXpghxYjIkGIyMTc3h6ysrLAzInJxPHr0KI4dO4YTJ07A6XRi3bp1HFGuXr06rplKONDm4RqNJil7dtFAlpnHx8cxOjoKiUSyoMoSux0ZCX6/n9sva25uFvXiS1vzkSok0tzObDZDq9WiqKgobW1jsms3OzvLK+sw6DyNRpQ8/DAK//Y3qCYmwv/7qiq4ojidLIbwX0LK09PTXHUYKZ+RTtMQsuZjtVqxe/dujI2N4fnnn+dWp9KFuro6FBQUgGEY3HrrrbjlllvS+noWETKkuJjgdrvx4Ycf4tixYzh27Bi6u7uxYsUKjiQ7OjpiungsBjcaIHyrNFxeoVwuF6UdGQnT09Po6+vDypUrUV1dnTISJnM70l72er1gGAarVq1CaWlpStx4QkFs4kTJOmRZSH/yE2Q98EDYv/Y0NsJ69OiC9RealJPdpowGm82G7u5uFBYWxiRlelxAW9fRQp5IN3gsy+K9997D3Xffje3bt+Mb3/hG2gKAaRgMBlRWVmJqagqXXnopnnzySXz2s59N98taDMiQ4mIGEWIcO3YMR48exfHjxzEzMwONRsMpXdevX8/N73p6emC1Wjnz8HS40dCq0njWTWhzcNKOFMOyzuVyQavVQiKRQKPRpEXYRGa5hJRVKhV3YXW5XMjOzg5q0yXr/fL5fOjt7YXdbhfVJk76wgvIuu22eRebEJi+8AX03Hcft/5C2spk8TtdAcR0y3b16tWCSZlY19HzZnKDZ7fboVKpUFVVhQceeABnzpzBgQMHUFdXJ/LZiIM9e/ZArVbjrrvuSvdLWQzIkOJSg8/nQ1dXF9d2PX36NABAKpXC4/Hg2WefxZo1a9Ka/J6IqpRuX5lMpgUq0Pz8/KjyenpmF6/CNhlwOp3QarWQyWTQaDQLhDQsy8LpdAbN7Wg3nvz8fKjV6oTfx+npafT29iZF3crodFBu2RJ2LcN3/fXwHjgA4FwottVqhUKh4Myz453DigW73Y6urq64qkMhINZ1R44cwYEDB9Df34/i4mL88z//M7Zs2YKtW7em7fNIw263cy1hu92OSy+9FN///vfx+c9/Pt0vbTEgQ4pLGX6/H08//TSee+45XHPNNZDL5Th+/DiGhoZQW1vLVZObNm2CWq1OarROMlWltAqUtF3DqSPTnSIBBFvV8SVl2o2HtOnofbtobjyhIO48wHyyQbIqZelLLyHrO99ZaPeWkwOnToc5loVWqw1qX8dKRRHrhoCAZVkubqu1tTXuOaoQeDwePPTQQ3jvvffw3HPPITc3FydOnMCJEyfQ0dGBL3/5y0k7drzo7+/Hl770JQDzN9k33ngjdu/eneZXtWiQIcWlDL/fj/379+Pmm28OIqJAIIC+vj6umvzggw/g9Xqxfv16bjbZ3NycsNCDb6tUTNDqSJPJBJvNBolEgsrKSpSUlCQ1xy8SiHE2qUTEENLQ+3ah6xLh7NxoN5hURW1JXn0Viq99DQgEAIlk3vPU68XAffdh7P/8n7jCfyPdENB7onwW8AlIdVhQUMAFQicLZ8+exY4dO3DVVVfhnnvuScv4IoOEkSHF5QKHw4FTp05xTjw6nQ6lpaWcXV17ezuKiorivuiYTCbodDpRCYAvaAKoq6vjZnZE3EInhfCpsviCDh9uaWlJqgMKbedGztXr9UKtViM7OxszMzPIz89HU1NTSlqSAIDZWWQ3Ns7PFll2vmpkWbhbW+H/05/ACCRm2tSe7hDQlXOkCjiV1aHP58MTTzyBV199Fc8++yw2btyYtGOF4siRI9i5cyf8fj++8Y1vYNeuXSk79nmKDCkuVxBCIdVkZ2cnLBYLVq9ezbVd165du2AW5vF4oNfr4fF40raAD8xL3Ok9u3AEQHuekipLbMs6ku+XTqWv3+9Hb28vpqamkJubC7fbzWsOmyhke/dC/p//CTid537IMGDLy+G/6ip4H3tMtGPRNwQWi4Xbh6Wdatxud8qqQ71ejx07duAzn/kM9uzZk1JBl9/vh0ajwV/+8hdUVVWho6MDv/rVr7B69eqUvYbzEBlSzOAcvF4vTp8+zRkMnDlzBiqVCu3t7Whra8Pp06cxPT2N+++/P6WtUhqkKrNYLGhpaeGlHqRDfU0mU0LiFpfLhZ6eHkilUjQ3N6fFkQYIzjqkxSOR3HjoOawYF3CmuxuKq66Cn2EgHR8HQ64VcjkgkSCwYQPcb76Z8HEiIXQ+OT09DY/Hg8LCQhQXFwveK4wFv9+PF154Ab/4xS+wb98+fOpTnxL1+ePB0aNHsWfPHrz++usAgB//+McAgO9973spfy3nETIhwxmcg1wuR1tbG9ra2rBjxw7O1/XFF1/Evffei7KyMvj9ftx+++1Bvq7JakvSoH1Cq6urodFoeB8zXKgvPcsaHh7mzKTpapLeKaQ9OtOpbvX7/ejr64PZbA5rWk0MzmkPUbrKGhkZCXLjIefKtw3uNxjgDQTASiSQMcy59QypFPD757MVkwiSRQjM796Vl5ejrq6OMxoIFx8mdD5JMDIygm9961tYvXo13nvvvbR1SwwGA6qrq7n/rqqqQmdnZ1pey3JDhhSXKRiGQU9PD95880289dZbaGpqQiAQ4Hxdf/vb3+Lee+8FAGzatImbT4rt6+pwOKDVapGVlSV66jq9hE0uMHRSyNjYGLdTqFQqYTQaeWU+JgMkBLmyshJNTU1xX9wVCgVKS0u5vELapWZycpJLTqHdeCKplkmqhsHpxDaJBBKGAeh/FwgAUil8//7vopxzJLAsy63g0FZxkeLDLBYLl0jCt3IOBAL45S9/if379+PRRx/FxRdfvGhyDjNILTLt02UM8t5H+vKzLAubzYaTJ09yBgNkWX3z5s0J+bqSCJ/p6WloNJq0xep4vV5otVqYzWbk5eXB6XRye1502zXZF0g667C1tTUpIch0DJPZbIbdbl9g9s7+fc1CLpfPGyO89x6ytm+f90F1OsHm5QFyOQKf+Qw8L744XzUmAQ6HA11dXYKNxGkf23DzydzcXG7mPDExge985zsoLS3FY489lnKf1nDItE+TgsxMUQh+85vfYM+ePeju7sbx48fR3t7O/d2Pf/xjHDhwAFKpFE888QQuu+wyAMtLJRbN15VUk7F8XUnye3l5edrcT4Bzy+/V1dWorKzkiI9YfxERDyGP0LarGKCzDuvr61FaWprSCoUspdMhzbm5uSgpKTnnxiORAFYrJKdPQ3LmDNjiYvg//3lBmYqxQLewW1tbRSMoYqhASPKTTz7Bj370I1RUVECv1+POO+/E9u3bk3IzIgQ+nw8ajQZ//etfuXCB//mf/8GaNWvS/dKWMjKkKATd3d2QSCS49dZb8cgjj3Ck2NXVhRtuuAHHjx/H2NgYLrnkEuh0OgBY9ioxt9uNjz76iCPKSL6uIyMj6OzsRFNTE5qbm2PutyULQmziaMs6uvJIZGbncrnQ3d2NrKwsaDSatO2+0eG/DQ0NXCoKaUlygqXcXFQ+9RRy/ud/AJaF/x//EZ79+wGRiCTR6pAPZmdncccddyAQCODTn/40urq68NFHH2HNmjU4yDMvMll47bXXcNttt8Hv9+Pmm2/OLOEnjozQRghaW1vD/vzw4cO4/vrroVAoUFdXh8bGRhw/fhwA0NjYiPr6egDA9ddfj8OHDy8rUlQoFNiyZQu2bNkCINjX9dixY3jmmWeg0+kgkUjwxS9+EatWrUrLvIauQhobG3lF62RlZaGkpIRbmKdndhMTE9zMjhZ8RDOSHh0dhcFgSKugh34ddPivXC6HSqVCRUUFACDg8cB/8CAkhw9Defw43FlZYKRSSF9/He5774X/Rz9KSJBFvy8tLS1JTX1hWRZHjhzBnj17sHv3bnzlK18Jet0+ny9px+aLyy+/HJdffnm6X8ayQ4YU44TBYMDWrVu5/66qqoLBYACAjEosBAzDoKysDNdccw00Gg3eeecdfO1rX8MXv/hFfPzxx/j5z3+O06dPc4pY0natqalJWiuV7D6SCjbRKoQoI3NycrBy5UoACEoK6e/vDxJ8kD8ejyeokk6XoIeE/+bl5UV/HYEAsq+7DpL33wfsdgCAFACbn48AyyKrsxMf63Tcnih9UxCPaMrhcKC7uxu5ublJ/31YLBZ873vfw8zMDP785z9zpE8j2aYIe/bswfPPP8/dXO3duzdDfIsMy5IUL7nkEkyEyYp78MEHcc0116ThFZ2/UKvVeOGFF7gKfOvWrbj11lvBsizMZjNOnDjBqV2T4etKrzfw3X3kC6lUihUrVgRVOmRVYm5uDj09PfB4PCgoKIBCoeBST1JJjGQmPDk5GVf4r+TkSUiOHp1f3idrGXY7kJsLCctC0dSEDRs2BLnxGI1GDA4Ocm48hCTpc6Wr1FRUh++++y7uuece7Ny5E//6r/+a1oin22+/PZNasYixLEnxjTfe4P2YyspKjIyMcP89OjrKhYlG+nk8+Oijj/Af//EfcLlckMlkePrpp7F582awLIudO3fitddeg0qlwksvvYRNmzbxft3pBl1F02AYBitWrMCll16KSy+9FMA5X9djx47hD3/4A+6//354PB5s2LBBkK8rEdJUVVXxWm8QEwqFAllZWZibm0N1dTWqq6s5wcfY2BiXFJIKyzo6/LejoyM+YjCb5xWmZC2DmINbLEBuLrz33w9g/v1UKpVQKpVBe6J2u33BuRLLvvz8fLS3tye1OnM4HPjBD34ArVaLV199FTU1NUk7VgbnBzJCmwi46KKLgoQ2Z8+exY033sgJbS6++GJujpSISuwf//Efcfvtt+MLX/gCXnvtNTz88MN4++238dprr+HJJ5/Ea6+9hs7OTuzcuXNZtmUj+bq2tbVxayGhvq4ul4sTQSUzRSIWSNahw+FAS0tLxEVw2rLOYrEEJYWQP4mIcBIK/52dRfb69fPkCJxb4JdIgOxs+K69Ft6nn47rqcje4cjICIqKiuDxeOBwOJLixgMAx48fxx133IF/+7d/w/bt2xdFAPCePXvw0ksvIS8vD+3t7Xj00UfTto60DJER2gjB73//e3z729/G9PQ0rrjiCmzYsAGvv/461qxZg+uuu45bN3jqqae4imXfvn247LLLOJUYH9k0wzCwWCwAALPZzM2nDh8+jJtuugkMw2Dr1q0wmUxciOtygkqlwoUXXogLL7wQQLCv69GjR/H4449zvq5tbW0YGRmBTqfDM888k5IUiUigsw6bm5ujVn4ymQyFhYUoLCzkfuZyubhW5MDAQJBlHR97M7PZjJ6eHs4gnjcxFBXB9ac/QfH1r4MZHp5vnUql86To8UD229/C993vgo0Rsut0OtHV1QW1Wo1t27YFVfvh3HhycnKC5pN8Wsxutxt79+5FZ2cnfvWrX6G5uZnfOSeIaOOZb37zm7jvvvvAMAzuu+8+3HnnnfjZz36W0teXQXRkKsU0o7u7G5dddhlYlkUgEMD777+PmpoaXHnlldi1axc+85nPAAAuvvhi/OQnPwnam8xgHl6vF6+88gp2796NgoICBAIBKJVKTsCzefPmlBl6JyvrkG5Fms3moDxGUk3SlnV+vx/9/f0wm81obW3l7NISAfPRR1BecUWwOXh2Nlx/+APYCOkRLMvCYDBgdHQ0SOEaDbSyl5wrceMhJBlp1nz69Gl8+9vfxpe//GV897vfTV2aiAAMDg7iyiuvxJkzZ9L9UpYLMpXiYkG0O8e//vWveOyxx3Dttdfi0KFD+PrXvy5o5rmcYTKZ8Mwzz+B3v/sd1q9fz/m6dnZ24ujRo/j5z3/OrWG0t7ejo6MDmzZtEnV2l+ysQ4lEgtzcXOTm5qKqqgpAsGXd+Pg4XC4XlEolFAoFjEYjKisr0dbWJt45NjeDVanA2O2c6IaVy8FGWG0h+485OTm8lKXRlL0WiwWDg4Ow2WxcS/nMmTPYtm0bXn31VfzpT3/CgQMHcMEFF4hyzmKD7vb8/ve/x9q1a9P8ijIIRaZSTDPy8/NhMpm41PL8/HxYLBbceuutuOiii3DDDQXo78kAAA5wSURBVDcAmK863n777WXXPo0XLMtGvfjTvq6dnZ344IMPAJzzde3o6EBjY6OguRNZK8jJyUFjY2PaqhNiWUdELA6HA36/P8iyLicnJ6HZGtPbi6x/+zdItNr5ijE7G/D54P3hD+HbsQOAsOpQCDweD/r6+vDkk0/i2LFjmJubw9atW7Ft2zZ8+tOf5lruiwlf+9rX8NFHH4FhGNTW1uLZZ5/NfKdTh4yjzVJAa2sr9u/fj4suugh//etfcffdd+PUqVP44x//iH379nFCm+985zucWQBfPPnkk9wM9IorrsDDDz8MILJt3XIAy7Kw2+2cr2tnZyd6e3tRWVkZt68rvd7Q3Nyc1LWCWJidnYVOp1uQ/Uhb1lksFthstgV+p7ytzQIBZK9aBWZujvsRm50N19tvw9HQwLnjNDU1JXXdxO/345lnnsHLL7+M/fv3o6OjA/39/Th+/Dimpqawc+fOpB07gyWJDCkuBbz33nvYuXMnfD4flEolnn76abS1tYFlWezYsQNHjhyBSqXCiy++KGie+NZbb+HBBx/EH//4RygUCkxNTaG0tDSibV26lskXA0J9XU+ePAmHwxHW1/Vvf/sbfD4fqqurUVtbmzZloxAjcWLjRv7QlnWELKN+DmZnkd3YCMbj4X7E5uZi/Ic/RM8FF0Cj0QSJhpKBoaEhbN++HevXr8fevXtTZhkoxBs5g0WDDClmAFx33XW45ZZbcMkllwT9PNR1/7LLLsOePXuwbdu2lL/GxYxQX9ezZ8/C7XZDIpFg586duOyyy1BWVpaWHcipqSn09fWhtrYW5eXlCdms0WG+FoslSNhC2q7c8/v9yK6sBGO1cs/hVyigO3AAVVdfndQbq0AggIMHD+K5557D448/js997nNJO1Y48PVGXs43mYsQGaFNBoBOp8O7776L3bt3Q6lU4pFHHkFHR0dU27oMzoH2dX3rrbdw55134qtf/So0Gg2OHz+Ob3zjG5ienkZzczPnxLN+/fqkpi14PB5otVqwLCtKBiUtbCHzrWiWdXl5eSg6eBDqr30NAYkEcLth++Y3UfOlL4lxehExPj6OHTt2oLq6Gu+9915S3Ykiga83cuYmc+nh/7d3/zFV118cx5/3eoEKVKSLplawcaGAxIT48Y8OZJi6vFNYV9Ilm9aGzmUxHG6u1AoFnIxclLV2i1WLFW0JWERZWTqQ4WgR9ONOuMBFMNAYtAbI3f3+8YWPVwXjx70XuJzHX3Dvdj/vO9jOfX/u+7yOFEU3cLfTrUNDQ1y/fl0Z82QwGGhqapqGVc5+Q0NDlJWVKYlFW4aLwNDQEI2NjVRVVfHhhx+SmZmJh4cHkZGRSqF0RK6r/ZipoKAgZaCwM4wWWWc/KaTFz4/+d95hUWcnvuHh+EREMN9qdcrOyGaz8dlnn5Gfn09OTg4bNmyYcQOA5UOm+5Ci6Abu1sLx9ttvk5ycjEqlIiYmBrVaTXd3911j6ybrxIkTZGZm0tXVhVardZuouhEjcXS302g0REREEBERMa5c1+joaKKioiaU6zowMMBvv/2Gh4cHTzzxxLSMmfL09ESr1TI4OEh3dzdha9bg5eV1R4yb/W3X++67b0oFrKuri4yMDO69915++OEHp39XCZKNPNdJUXRzmzdv5vvvvychIUE5kKHVatHr9Wzbto2MjAyuXLmCyWQiJiZm0tdpa2ujsrKShx9+WHnsq6++wmQyYTKZuHjxIrt3754TUXVj5bo2NTVRVVXFmTNnePXVV8eV62rf/xgcHDyhcVeONjL/cSQYYaT1xMfHR/lAZbVale8mRyLuRiLrRg7xjOd2r81m48yZM7z22mscOnSIlJQUl+0OHZ2NLGYXKYpubufOnezcuZPHHnsMT09PioqKUKlUd42tm4yXXnqJvLy8Wz5JS1TdTWq1Gp1Oh06n49lnnwVu5rpevHiR3Nxc/vjjD/z9/ZWTrlqtluPHj/Pyyy8THR09bf2PNpuNjo4OWlpaCAkJuev8x3nz5rFo0aJbehP7+/vp7e2lp6eHlpYWhoaG8Pb2VnaTt0fW9fT0kJWVRV9fH99++60SMD6TOfpDppg+UhTdnKenJx999NGozx08eNAh07xPnz7N8uXLWbly5S2Pt7e33zFrsr29fU4WxdGMlet64cIF3nrrLX7++WdCQ0MpKChQdpMrVqyY8sGaiRjZHXp5eU26MI9Mzxj5DtQ+ss5isdDX18dPP/3E77//zvLlyykvL+fAgQPs2LFjRoR425tMNrKYXaQlQ4zL3b5nOXr0KJWVlSxcuJDAwEBqa2vRarWS3zpJBoOBgIAAjhw5goeHB/X19UpLSH19Pd7e3k7PdZ3I7tAR2tvbOXz4MCaTiUWLFtHZ2clDDz1EWloaTz/9tFOvLeYM6VMUzldfX09iYqIyFslisbBs2TJqamo4dOiQRNVNQm9vLwsWLBj1uZFc15qaGiWJ58qVKwQFBSm7yanmuo4c6vH09CQkJMTpt22rqqrIzMzk+eefJz09HbVajc1mo62tTRm7JYQDSFEUrme/U3RkVN3+/fspKyvD09OToKAg3n//faVdYK4nidye61pXV4fNZptwrqvNZqOzsxOz2eyS3WF/fz/Z2dnU1tby3nvvERwc7NTr2RsrmcZsNhMaGqqMm4qLi+PUqVMuW5dwKimKwvXsi6KjouoAKisrWbt2LRqNhqysLAByc3MlSWQUo+W6Xr58mWXLlo2Z69rT04PZbMbDw4OQkBCnt3zU1dXxwgsvkJqaSkZGhsv/XmMl08g4J7cmiTbC9cxms/KzSqWisLDQIa+7bt065ee4uDhKSkoASRIZjUqlwsfHh/j4eOLj44Gbua7V1dV899135Obm8u+//xIeHs4999zDuXPnKC0tJSAgwKlru3HjBsePH+fs2bMUFRVN2+iksZJphJCiKGYdo9HI1q1bAUkSGS+1Wk1gYCCBgYGkpqYC0Nrayo4dOxgYGCAyMpJnnnmGhQsXKjvJmJgYh+a6NjY2snfvXtavX8+PP/44LQEE49Hc3MyqVatYsGABr7/++owcQSWcR4qimDHGkySSnZ2NRqNh+/btrl6e28nPzycrK4sNGzYA/7/t+tdffynDmd99912H5LparVYKCwspKSnh1KlTLjt9PJlkmqVLl9La2sr999/PpUuX2Lx5Mw0NDWMefBLuR4qimDH+K0nkgw8+oLy8nLNnzyq7F0kSmbyCgoJbflepVCxZsgS9Xo9erwdu5rpWV1dPKte1ubmZPXv2EBMTw/nz550alH67ySTTeHl54eXlBUBUVBRBQUH8+eef0kY0h8hBGzErVFRUkJGRwblz5/D391ceb2hoYNu2bcpBm8TEREwm05QOblRUVLBv3z6sVivPPfccBw4ccMRbcAs2m43e3l6lJaSmpoaWlhYCAgKUW65RUVF4e3tjNBoxGo2cPHmSNWvWTPfSRxUfH3/LQZuuri78/PyYN28eTU1NrF69mvr6epdkrgqnk9Onwn3odDoGBgaUNgH7o/LZ2dkYjUY0Gg0FBQXK7cDJsFqthISE8M033/Dggw8SHR3NJ598QlhYmEPehzuyz3Wtrq7m0qVLXL58mU2bNnHy5El8fHyme4l3sE+m8fX1VZJpPv/8c1555RU8PDxQq9UcOXKETZs2TfdyhWNIURRioqqqqjh8+DBff/01cOcwZjE+3d3d+Pn5zbiYNjGnjasoyn+sEHbGymsVE6PVaqUgillJ/muFELPW/v37efTRR4mIiGDLli309PQozx07dgydTscjjzyi7PyF+C9SFIWw46zTrG1tbSQkJBAWFkZ4eDhvvPEGANevXycpKYng4GCSkpL4+++/p3ytuSQpKYlff/2VX375hZCQEOV2d2NjI8XFxTQ0NFBRUcGePXuwWq3TvFoxG0hRFMJOdHQ0JpOJ5uZmBgcHKS4uVtoTpkKj0XDixAmlvaGwsJDGxkZycnKUE7OJiYnk5OQ44F3MHevWrVMCy+Pi4rBYLMDYSUdC/BcpikLY0Wg0vPnmmzz55JOEhoZiMBgIDw+f8usuXbqUyMhIAObPn09oaCjt7e2cPn2atLQ0ANLS0vjiiy+mfK25ymg0KieP5bthMVnSvC/EbTZu3MjGjRud9vpms5m6ujpiY2O5evWqMkrrgQce4OrVq0677mwlSUfClaQoCuFC//zzDykpKRQUFNwRHaZSqRw+LNgdSNKRcCW5fSqEi9y4cYOUlBS2b99OcnIyAEuWLKGjowOAjo4OFi9ePJ1LnHUqKirIy8ujtLRUGXQNoNfrKS4uZmBggObmZkwmEzExMdO4UjFbSFEUwgVsNhu7du0iNDSUjIwM5XG9Xk9RUREARUVFYwZVT5TVamXVqlU89dRTwP8zSGNjY9HpdGzdupXBwUGHXGe67d27l76+PpKSknj88cdJT08HIDw8HIPBQFhYGOvXr6ewsHBOz9gU4yeJNkK4wPnz51m9ejUrVqxQmtqPHj1KbGwsBoOB1tZWAgIC+PTTTx2Ss5mfn09tbS29vb2Ul5djMBhITk4mNTWV9PR0Vq5cye7du6d8HSFmEYl5E2IuslgspKWlcfDgQfLz8ykrK8Pf35/Ozk40Gs0dUXZCzBES8ybEXPTiiy+Sl5en7EivXbuGr6+v0s8n7QlCjE2KohBupLy8nMWLFxMVFTXdSxFiVpKWDCHcyIULFygtLeXLL7+kv7+f3t5e9u3bR09PD0NDQ2g0GmlPEOIuZKcohBs5duwYFosFs9lMcXExa9eu5eOPPyYhIYGSkhLAsadchXA3UhSFmANyc3PJz89Hp9Nx7do1du3aNd1LEmJGmujpUyGEEMJtyU5RCCGEGCZFUQghhBgmRVEIIYQYJkVRCCGEGCZFUQghhBgmRVEIIYQYJkVRCCGEGCZFUQghhBgmRVEIIYQYJkVRCCGEGPY/4Lhb3WOApbQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 测试\n",
    "train_x,test_x, train_y, test_y = load_data()\n",
    "X=np.vstack((train_x, test_x))\n",
    "Y=np.vstack((train_y.reshape(train_y.size,1),test_y.reshape(test_y.size,1)))\n",
    "lda= discriminant_analysis.LinearDiscriminantAnalysis()\n",
    "lda.fit(X,Y)\n",
    "cocnverted_X = np.dot(X, np.transpose(lda.coef_))+lda.intercept_\n",
    "plot_LDA(cocnverted_X,Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "# LDA中 solver对结果的影响\n",
    "def test_LinearDiscriminantAnalysis_solver(*data):\n",
    "    train_x,test_x, train_y, test_y = data\n",
    "    solvers = ['svd','lsqr','eigen']\n",
    "    for solver in solvers:\n",
    "        if solver == 'svd':\n",
    "            lda = discriminant_analysis.LinearDiscriminantAnalysis(solver=solver)\n",
    "        else:\n",
    "            lda = discriminant_analysis.LinearDiscriminantAnalysis(solver=solver, shrinkage=None)\n",
    "        \n",
    "        lda.fit(train_x, train_y)\n",
    "        # 成绩\n",
    "        print('【{0}成绩】Testing Score: {1}'.format(solver,lda.score(test_x,test_y)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "【svd成绩】Testing Score: 1.0\n",
      "【lsqr成绩】Testing Score: 1.0\n",
      "【eigen成绩】Testing Score: 1.0\n"
     ]
    }
   ],
   "source": [
    "# 测试\n",
    "train_x,test_x, train_y, test_y = load_data()\n",
    "test_LinearDiscriminantAnalysis_solver(train_x, test_x, train_y, test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "# lsqr中引入抖动，相当于正则化项 观察 抖动对预测结果的影响\n",
    "def test_LinearDiscriminantAnalysis_shrinkage(*data):\n",
    "    train_x,test_x, train_y, test_y = data\n",
    "    shrinkages=np.linspace(0.0,1.0,num=100)\n",
    "    scores=[]\n",
    "    for shrinkage in shrinkages:\n",
    "        lda = discriminant_analysis.LinearDiscriminantAnalysis(solver='lsqr', shrinkage=shrinkage)\n",
    "        lda.fit(train_x, train_y)\n",
    "        scores.append(lda.score(test_x,test_y))\n",
    "    # 绘图：\n",
    "    fig = plt.figure()\n",
    "    ax = fig.add_subplot(111)\n",
    "    ax.plot(shrinkages,scores, label='Testing Score')\n",
    "    ax.set_xlabel(r'shrinkage')\n",
    "    ax.set_ylabel(r'score')\n",
    "    ax.set_ylim(0.8,1.05)\n",
    "    ax.set_title('LinearDiscriminantAnalysis')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 测试\n",
    "train_x,test_x, train_y, test_y = load_data()\n",
    "test_LinearDiscriminantAnalysis_shrinkage(train_x, test_x, train_y, test_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
